我在靜態資源(圖片,js和樣式表)沒有在Heroku上投放時遇到問題。 在我的本地開發環境中正常工作。靜態資產沒有在Heroku/Thin上投放
錯誤是這樣的:
2011-08-08T02:58:45+00:00 app[web.1]: Started GET "/stylesheets/reset.css" for 98.234.235.21 at 2011-08-07 19:58:45 -0700
2011-08-08T02:58:45+00:00 app[web.1]:
2011-08-08T02:58:45+00:00 app[web.1]: ActionController::RoutingError (No route matches "/stylesheets/reset.css"):
我使用:
- 的Ruby 1.9.2
- 的Rails 3.0.7
- Heroku的竹-MRI-1.9.2和瘦Web服務器。 (我也跟着拖欠heroku.com基本的安裝說明)
我搜索對谷歌/計算器,並試圖與沒有運氣以下:
- 刪除config.ru
- 添加
use ActionDispatch::Static, "#{Rails.root}/public"
到config.ru - 設置staging.rb
config.serve_static_assets = true
任何人都可以提出一個解決?我應該使用Cedar而不是Bamboo嗎?我應該使用別的東西而不是瘦?
謝謝!
編輯: js文件正在被送達,但圖像和樣式表都沒有。 我檢查了我的鏈接中的路徑是一致的。
myapp.heroku.com/stylesheets/reset.css
- 失敗 myapp.heroku.com/javascripts/jquery.js
- 成功
我也試圖進行以下設置:config.action_dispatch.x_sendfile_header = nil
。 這與config.serve_static_assets = true
一起,但注意到Heroku強制這些選項,無論你如何設置它們。也就是說,它在啓動過程中執行以下操作:
-----> Detected Rails is not set to serve static_assets
Installing rails3_serve_static_assets... done
-----> Configure Rails 3 to disable x-sendfile
Installing rails3_disable_x_sendfile... done
瑞安,我把它配置成運行分段,並驗證我的更改正在應用:'heroku config --remote staging'顯示'RACK_ENV =>分段和'RAILS_ENV =>分段 – stupakov