在我实际执行任何操作之前,我在本地生产环境中运行我的代码。我在生产中注意到我的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重新加载静态资产?
答案 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