在生产模式下,rails似乎无法从资产管道中找到任何预编译的资产。为什么Rails不能找到我的资产?
我在CentOS上的RVM内部使用rails 3.2.0和ruby 1.9.3。没有额外的网络服务器与此应用程序结合运行。该应用程序最近才更新为使用资产管道,因为它最初是一个rails 3.0应用程序。
运行
rake assets:clean
rake assets:precompile
后,我看到在公共/资产散列的内容,如我期望的那样。文件末尾的哈希符合我在页面源代码中看到的哈希。
然而在运行时,这是我看到每个资产Rails的尝试投放:
Started GET "/assets/application-892c6227e631daf9a8e041b1d4d002ec.css" for 75.149.58.169 at 2012-03-14 11:42:43 -0700
ActionController::RoutingError (No route matches [GET] "/assets/application-892c6227e631daf9a8e041b1d4d002ec.css"):
我不是指每个资产安置在该文件夹;资产的所有引用看起来像这些:在production.rb
//css:
.class {
background: url(asset.png) no-repeat;
}
//erb:
<%= image_tag "asset.png" %>
<%= link_to "page", :class => "class" %>
资产管道相关的设置:
config.serve_static_assets = false
config.assets.enabled = true
config.assets.compress = true
config.assets.debug = false
config.assets.compile = false
config.assets.digest = true
最后,从配置/ application.rb中资产设置:
config.assets.enabled = true
config.assets.version = '1.0'
启动rails server进程的用户对公共/资产具有读取,写入和执行权限,所以我不认为这是权限问题。我错过了配置步骤吗?
编辑
我注意到,有没有错误,指出资产不预编译,所以我试图通过附加“/assets/application-892c6227e631daf9a8e041b1d4d002ec.css”每次从网页访问样式表主机路径末尾:
http://www.myapp.com"/assets/application-892c6227e631daf9a8e041b1d4d002ec.css"
这样工作并打开了样式表。
相关/重复:http://stackoverflow.com/questions/5760661/rails-favicon-ico-not-found – 2014-03-04 09:17:42