简而言之,问题是在开发模式下我们会对CSS或JS文件进行更改,但总会获得这些文件的缓存/旧版本.我所做的一切都没有任何效果.我检查了几十次配置并尝试了配置值的每个组合,但始终保持得到相同的结果:过时/缓存文件.我必须实际运行在生产模式,并在每次更改后重新启动服务器进行测试.
我花了好几天在这个问题上撕扯我的头发,看了几十个关于资产管道的stackoverflow问题,但从来没有找到解决它的问题,所以我想我会把它发布给后人.
我们使用Heroku并预编译我们的资产,因为Heroku无法为我们预编译(我们也使用了设计,这显然是heroku预编译失败的原因).因此,为了将我们的预编译资产推送到Heroku,我们必须检查它们到git.
这是问题所在.
当我们升级到Rails 3.1.1资产预编译生成的文件时,无论是否有名称中的MD5哈希.我没有想太多,并继续检查所有这些文件,所以我可以推送到heroku.一段时间后,我注意到在开发模式下缓存结果的问题.没有MD5哈希的预编译和签入资产作为静态文件从/ public/assets提供,这使我们无法看到我们在/ app/assets中进行的任何更改.
终于意识到这一点后,我运行了git rm/public/assets,一切都运行了.所以外卖是:小心检查资产到git!
把这变成一个问题:其他人如何做到这一点?我错过了一些明显的东西吗 我真正喜欢的是Heroku为我预编译我的资产,但是我收集的数据库连接错误是因为设计而失败.我曾希望Rails 3.1.1修复此问题,但事实并非如此.