什么时候编译的资产被缓存在rails中

时间:2011-10-13 22:23:44

标签: ruby-on-rails ruby-on-rails-3.1 asset-pipeline

当我为带有rake assets:precompile的rails 3.1应用程序预编译我的资产时,如果资产文件中没有任何更改,它会吐出旧的缓存版本。我可以说,因为我的erb正在使用一个常量,我试图在我的应用程序的其他地方更改。一个解决方法是在重新预编译之前改变其中一个css文件(例如通过添加空格等),但这很痛苦,我想尝试在可能的情况下禁用此缓存。有任何想法吗???

1 个答案:

答案 0 :(得分:2)

这是管道的预期行为 - 在预编译时仅对ERB进行一次评估。编译时的值是您在文件中获得的值。

缓存基于检查文件的时间戳。您可以在没有预编译的情况下在生产中运行Sprockets(这称为实时编译),但是您无法关闭缓存,因为性能会很糟糕 - 每个请求都需要Sprockets重新编译所有文件。

抱歉:-(