0

Rails4 を使い始めましたが、アセット パイプラインが正しく機能しません。Rails 3 のように css や js が結合または縮小されていないことを除けば、私のサイトはステージング環境で正常に読み込まれます。バージョン間で何か変更はありますか?

私のstaging.rb環境ファイルは次のとおりです。

MyApp::Application.configure do
  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.serve_static_assets = false
  config.assets.js_compressor = :uglifier
  config.assets.compile = false
  config.assets.digest = true
  config.assets.version = '1.0'
  config.log_level = :info
  config.cache_store = :dalli_store
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = ::Logger::Formatter.new
end
4

1 に答える 1

2

これは、私の側の問題が原因でした。どういうわけか、サーバーの環境変数を「開発」に設定したため、このステージングファイルは実行されませんでした...

@frandroidの答えに関しては、設定したくない

config.assets.compile = true

本番環境でアセットを遅延コンパイルするためです。最大のパフォーマンスを確保するために、サーバーへのファイルのプッシュ中またはその前に、ファイルが完全にコンパイルされていることを確認する必要があります。

最終的な staging.rb ファイルは次のとおりです。

MyApp::Application.configure do
  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.serve_static_assets = false
  config.assets.js_compressor = :uglifier
  config.assets.compile = false
  config.assets.digest = true
  config.assets.version = '1.0'
  config.log_level = :info
  config.cache_store = :dalli_store, ENV["MEMCACHIER_SERVERS"].split(","),
                    {:username => ENV["MEMCACHIER_USERNAME"],
                     :password => ENV["MEMCACHIER_PASSWORD"]}
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = ::Logger::Formatter.new
end
于 2013-05-04T22:23:36.397 に答える