在生產模式下,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