所以只需使用Sprockets资产管道尝试Rails 3.1-rc1:
我运行rake assets:precompile
我获取/ public / assets目录和application.js文件MD5哈希:
application-266b6b0b4fbd28fc01145d90a4158b2f.js
但问题是:
当我更新我的JS并运行rake assets:precompile
时,我获得了更多的JS文件并且它不会删除旧文件。
我注意到它是如何工作的 - 浏览器只选择第一个,我必须手动删除旧的。这似乎不应该如何工作。
只是一个侧面抱怨:每当我改变某些东西时,似乎我必须运行rake assets:precompile
。这很痛苦。
(我想有必要提供一些关于这一切是如何工作的文档)。
感谢。
答案 0 :(得分:4)
js文件的名称是<文件名> - < hash> .js。
这样做是为了在将新版本的应用程序部署到生产服务器时,访问者也必须加载新的js文件。哈希确保他们不会混淆新的应用程序和旧的缓存的js,它们可能会破坏整个应用程序,同时考虑到了当今Web的动态特性。
在大多数部署方案中,您将把您的应用程序放在服务器上的新目录中,并且那里不会有旧的已编译的js文件。