2011-10-13 30 views
1

当我为一个rails3.1应用程序预编译我的资产时,如果资产文件中没有任何变化,它会分离出一个旧的缓存版本。我可以告诉,因为我的erb正在利用我试图在应用程序的其他地方改变的常量。一个解决方法是在重新预编译之前更改其中一个css文件(例如,通过添加空间等),但这是一个痛苦,如果可能,我想尝试禁用此缓存。有任何想法吗???什么时候被编译的资产被缓存在rails中

+1

你可以添加一个'耙资产:clean'可以肯定的,但这只是一种变通方法 – mliebelt

+0

感谢@mliebelt,我会试试看它肯定是比加好。到我的application.css.scss的新行 – Matthew

回答

2

这是流水线的预期行为 - ERB仅在预编译时评估一次。编译时的值是您在文件中获得的值。

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

抱歉:-(