4

この問題をデバッグする過程で、アプリケーションを本番モードでローカルで実行しようとしましたが、アセットが提供されません。さらに、 Herokuアプリケーション(本番のHerokuアプリケーションとは別)にステージング環境があり、アセットなしでHTMLを表示しています。

デバッグするには、次のようにします。

  1. サーバーを殺す
  2. tmp / cache/assetsをクリアします
  3. パブリック/アセットを削除する
  4. 走るrake assets:precompile
  5. サーバーを起動しますrails s -e production
  6. このページにアクセスしてWebインスペクターを開き、application.cssリンクの展開矢印をクリックすると表示されますReload the page to get source for: http://localhost:3000/assets/application-e1f3e0c864a153c7iu66f8772a886376.css
  7. ページをリロードしても何も起こりません。

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" %>
4

2 に答える 2

7

config.cache_store = :dalli_storeしたがって、問題は、エラーの原因となっているメモリストアが設定され、それをconfig.cache_store = :memory_store解決するように設定されていることでした。

于 2013-03-04T17:48:44.080 に答える
6

これは一種の推測ですが、コンパイルアセットをtrueに設定する必要はありませんか?

config.assets.compile = true

そして私はあなたがこのようにアセットをコンパイルする必要があると思います:

rake assets:precompile RAILS_ENV='production'
于 2013-03-04T17:11:33.277 に答える