この問題をデバッグする過程で、アプリケーションを本番モードでローカルで実行しようとしましたが、アセットが提供されません。さらに、 Herokuアプリケーション(本番のHerokuアプリケーションとは別)にステージング環境があり、アセットなしでHTMLを表示しています。
デバッグするには、次のようにします。
- サーバーを殺す
- tmp / cache/assetsをクリアします
- パブリック/アセットを削除する
- 走る
rake assets:precompile
- サーバーを起動します
rails s -e production
- このページにアクセスしてWebインスペクターを開き、application.cssリンクの展開矢印をクリックすると表示されます
Reload the page to get source for: http://localhost:3000/assets/application-e1f3e0c864a153c7iu66f8772a886376.css
- ページをリロードしても何も起こりません。
Production.rb:
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = true
config.static_cache_control = "public, max-age=3600"
config.assets.compress = false
config.assets.compile = false
config.assets.digest = true
Staging.rb:
config.cache_classes = true
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
config.serve_static_assets = true
config.static_cache_control = "public, max-age=3600"
config.assets.compress = false
config.assets.compile = false
config.assets.digest = true
Application.rb:
config.assets.enabled = true
config.assets.version = '1.0'
config.assets.initialize_on_precompile = false
以下は、 layout/application.html.erbのスタイルシートとjavascriptをリンクする方法です。
<%= stylesheet_link_tag "application", :media => "screen, handheld" %>
<%= javascript_include_tag "application" %>