【发布时间】:2014-04-20 12:58:05
【问题描述】:
我正在使用内置 Webrick 服务器在我的 localhost:3000 上的生产环境中测试我的 Rails 4 应用程序。当我运行RAILS_ENV=production bundle exec rake assets:precompile 时,资产会在公共环境中重建,并且清单也会重建,但页面仍然使用以前的资产名称提供服务。
重新启动 rails 服务器会使新资源出现。有没有一种不太极端的方法来实现这一点,当我将它移植到运行 Phusion Passenger 的生产服务器时,它会如何表现。我真的不想重启 Apache 来让我的资产运转起来。
【问题讨论】:
-
是否为编译的资产启用了指纹识别?
-
是的,编译的资产是指纹的。配置是默认的 Rails 4,除了设置了
config.serve_static_assets = true,这是让 Webrick 从/public、config.assets.digest = true提供资产所需的设置。这些资产的名称类似于application-01d7312dee865ebe9d525b15f2fbe7f0.css,这是页眉中的值。问题是新版本建好后还在使用旧版本。 -
旧版本的意思是,你改过内容吗?如果你没有改变assets的内容,预编译的版本会和之前的一样,如果你稍微改变一下,指纹就会改变,app会根据你设置的
config.assets.digest = true请求新的.
标签: ruby-on-rails ruby-on-rails-4 asset-pipeline