在我的app/views/layouts/application.html.erb文件中,我有:
<%= stylesheet_link_tag 'application', 'jquery-ui-1.8.14.custom', 'jquery-ui-1.8.14.custom_redefinition' %>
<%= javascript_include_tag 'application' %>
注意:
jquery-ui-1.8.14.custom
文件是使用Theme Roller生成的CSS文件,而jquery-ui-1.8.14.custom_redefinition
是我的“自定义重新定义”文件,覆盖了一些CSS类。这些文件(都是扩展名为.css
)位于vendor/assets/stylesheets
。
在我的本地机器上处于开发模式时,一切似乎都正常,但是当我使用Capistrano部署到远程机器时,它不再起作用。也就是说,jQuery UI相关文件没有按预期加载:如果我尝试访问它们,它们的内容为空(我可以在生成的应用程序Web页面的源HTML代码中看到它们)。
我该如何解决这个问题?
此时,在我的config/environments/production.rb
文件中有:
# Compress JavaScripts and CSS
config.assets.compress = true
# Don't fallback to assets pipeline if a precompiled asset is missed
#
# Note: Since, at this time, the asset Pipeline doesn't work for me I am
# following the "Live Compilation" approach (more info at
# http://guides.rubyonrails.org/asset_pipeline.html#in-production)
config.assets.compile = true
# Generate digests for assets URLs
config.assets.digest = true
在我的 app/assets/stylesheets/application.css.scss
文件中,我有以下内容:
/*
*= require_self
*= require_tree .
*/
在我的
app/assets/stylesheets/application.js
文件中,我有以下内容://= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_tree .
部署前,我在本地机器上运行以下命令:
bundle exec rake assets:precompile
注意:如果我运行以上命令,则会如预期生成
jquery-ui-1.8.14.custom
和 jquery-ui-1.8.14.custom_redefinition
文件于 public/assets
目录中。
也许问题与
app/assets/stylesheets/application.css.scss
文件中的 require_tree .
语句有关,该语句无法加载 vendor/assets/stylesheets
目录中存在的文件。
load 'deploy/assets'
以进行预编译资产:https://dev59.com/plvUa4cB1Zd3GeqPvZ85。Ruby on Rails资产管道指南中解释的服务器配置怎么样?顺便说一句,Rails 3.1.2中将解决哪个错误? - Backo