我在Rails中开始一个新项目,它看起来像application.js清单文件正在做一些有趣的事情,我引用了javascripts - 是否缓存这些文件作为资产管道?清除Rails资产管道中的缓存
这是发生了什么事。我添加了一个名为jquery.autoresize.js给供应商/资产/ JavaScript的文件夹中的JavaScript文件,然后引用清单中像这样的application.js文件:
//= require jquery.autoresize.js
然后,我开始了在轨服务器。但是在浏览我的应用程序后,我意识到我不小心添加了错误版本的jquery.autoresize.js文件。所以,我删除了该文件,然后将正确的版本添加到vendor/assets/javascripts文件夹。但是,令我惊恐的是,当我重新加载页面时,它仍在加载旧的JavaScript文件。
我试图清空我的浏览器缓存,然后退出并重新启动Rails服务器,但无济于事。我通过简单地重命名我的JavaScript文件并引用新名称,这很好地解决了一个解决方案。但是这必须有更好的解决方案。
新资产管道缓存了您引用的文件吗?如果是这样,我该如何清除缓存?谢谢你的帮助!
啊,非常有趣,谢谢你的想法。我实际上是在我的本地开发环境中执行此操作,并且我从不运行rake资源:预编译。那么,也许这使得它的行为有所不同?你认为开发环境会使它的行为与我原先描述的一样吗? – 2012-09-06 04:03:47
在开发环境中,不使用哈希文件名,因此所有内容都基于文件修改日期。 (在浏览器中查看源代码以查看HTML标头中的脚本链接。)我的猜测是,在开发环境中,替换文件具有较早的修改日期,因此浏览器仅使用其缓存版本。你的编辑更新了文件的mod时间,这就是浏览器最终获取新版本的原因。 – benzado 2012-09-06 18:10:10
太棒了。感谢您帮助我弄清楚这一点。我会修改问题的内容,以更好地解释问题并为您提供帮助。 – 2012-09-06 19:02:35