0

我开始使用 Rails4,但我无法让资产管道正常工作。我的网站在我的登台环境中加载良好,除了我的 css 或 js 都没有像 Rails 3 那样被合并或缩小。版本之间有什么变化吗?

这是我的 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 回答