资产管道 – 为什么Rails不会找到我的资产?
在生产模式下,rails似乎没有从资产管道中找到任何预编译的资产。
我正在使用rails 3.2.0和ruby 1.9.3在CentOS上的RVM内部运行。没有其他Web服务器与此应用程序一起运行。该应用程序最近才被更新为使用资产管道,因为它最初是一个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"): 我不是指每个资产所在的文件夹;所有对资产的引用如下所示: //css: .class { background: url(asset.png) no-repeat; } //erb: <%= image_tag "asset.png" %> <%= link_to "page",:class => "class" %> production.rb中的资产管道相关设置: 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 最后,来自config / application.rb的资产设置: config.assets.enabled = true config.assets.version = '1.0' 启动rails服务器进程的用户对public / assets有读,写和执行权限,所以我不认为这是一个权限问题。我错过了配置步骤吗? 编辑 我注意到没有错误说明资产没有被预先编译,所以我试图通过将“/assets/application-892c6227e631daf9a8e041b1d4d002ec.css”附加到主机路径的末尾,从网页访问样式表: http://www.myapp.com"/assets/application-892c6227e631daf9a8e041b1d4d002ec.css" 这工作,样式表打开。
进一步研究这个问题产生了这篇文章:
application.css not being served as an asset 它似乎 config.serve_static_assets = false 只要我的Rails应用程序没有运行在Apache或nginx之后,这是一个不正确的设置 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |