Ruby on rails 钢轨生产不是';t在服务器重新启动时更新静态资产

Ruby on rails 钢轨生产不是';t在服务器重新启动时更新静态资产,ruby-on-rails,Ruby On Rails,在实际使用代码之前,我在本地的生产环境中运行代码。我在生产过程中注意到javascript中的一个bug,修复了它,然后返回。这个错误持续存在。不过,我在dev中试过了,bug被修复得非常好!我重新启动了服务器,重新启动了计算机,并尝试了另一个SO问题touch/tmp/restart.txt中列出的解决方案,但似乎没有任何东西能够让Rails重新加载资产 config.serve_static_assets = false 我可以说这不是浏览器的问题,因为在修复了bug之后,我将网页加载到了

在实际使用代码之前,我在本地的生产环境中运行代码。我在生产过程中注意到javascript中的一个bug,修复了它,然后返回。这个错误持续存在。不过,我在dev中试过了,bug被修复得非常好!我重新启动了服务器,重新启动了计算机,并尝试了另一个SO问题touch/tmp/restart.txt中列出的解决方案,但似乎没有任何东西能够让Rails重新加载资产

config.serve_static_assets = false
我可以说这不是浏览器的问题,因为在修复了bug之后,我将网页加载到了一个以前从未见过生产环境的浏览器中,它表现出了相同的行为

以下是我的生产配置:

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重新加载静态资产?

尝试运行:

rake assets:clean

这些资产可能是在某一点上预编译的,现在服务器将始终使用这些预编译的资产(如果它们存在的话)。您还可以手动删除/app root/public/assets文件夹以获得相同效果。

要重新生成资产,请运行此命令

bundle exec rake assets:precompile RAILS_ENV=production
我建议在production.rb中将此设置为false,这样apache/nginx将为这些资产提供服务

config.serve_static_assets = false

谢谢成功了。我在windows上运行,由于某些原因,当该命令设置为false时,根本不提供资产。不过,我最终计划将它转移到linux上,所以我会记住这一点。