Rails生产不会在服务器重启时更新静态资产

时间:2014-08-05 15:39:13

标签: ruby-on-rails

在我实际执行任何操作之前,我在本地生产环境中运行我的代码。我在生产中注意到我的javascript中的一个错误,修复了它,然后回去了。这个bug仍然存在。然而,我在dev中尝试过,并且错误修复完全正常!我重新启动了服务器,重新启动了我的计算机,并尝试了另一个SO问题中列出的解决方案来触摸/tmp/restart.txt,但似乎没有任何东西让Rails重新加载资产。

我可以说它不是浏览器问题,因为在修复错误后,我将网页加载到之前没有看到生产环境的浏览器中,并且它表现出相同的行为。

以下是我的生产配置:

Rails.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 = true 
  config.assets.js_compressor = :uglifier
  config.assets.compile = false.
  config.assets.digest = true
  config.assets.version = '1.0'
  config.log_level = :info
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.log_formatter = ::Logger::Formatter.new
end

如何让rails重新加载静态资产?

2 个答案:

答案 0 :(得分:0)

尝试跑步:

rake assets:clean

资产可能在某一时刻进行了预编译,现在服务器将始终使用这些预编译资产(如果存在)。您也可以手动删除/ app-root / public / assets文件夹以获得相同的效果。

答案 1 :(得分:0)

要重新生成您运行此命令的资产

bundle exec rake assets:precompile RAILS_ENV=production

我建议在production.rb中将此设置为false,这样apache / nginx将为资产提供服务。

config.serve_static_assets = false