无需重新启动rails服务器即可更新资产

deR*_*led 5 ruby-on-rails thin asset-pipeline ruby-on-rails-3.2

所以问题基本上归结为:

如何在不需要重新启动服务器的情况下有效处理生产轨道环境中的更改资产?

我们遇到的问题是,我们必须重新启动运行应用程序的瘦服务器才能提供更新的javascript文件.

一些背景:

现在我们每小时从一些长时间运行的任务生成数据到javascript文件,所以我们可以在我们的Rails应用程序中使用它.
为了清楚起见,我们更新/覆盖现有文件,而不是添加新文件.

生成后,我们运行这些命令以重新预编译所有资产.

bundle exec rake assets:precompile
bundle exec rake rails_group=assets assets:clean RAILS_ENV=production

在清除浏览器缓存并重新加载页面后,我们仍在为旧资产提供服务.

你们有没有做过类似的经历; 你做了什么来解决它?

PS.祝大家节日快乐!

deR*_*led 2

因此,我们最终所做的基本上是通过设置让 Rails 也为静态资产提供服务

config.serve_static_assets = trueconfig/environments/production.rb

只需将经常更改的 javascript 数据文件放入public/. 这很有效,因为它还将资产和数据分离到不同的位置。