4

因此,只需使用 Sprockets 资产管道试用 Rails 3.1-rc1:

我跑rake assets:precompile

我得到 /public/assets 目录和 application.js 文件的 MD5 哈希:

application-266b6b0b4fbd28fc01145d90a4158b2f.js

但问题是这样的:

当我更新我的 JS 并运行时,rake assets:precompile我会得到更多的 JS 文件,它不会删除旧的。

我注意到它是如何工作的——浏览器只选择第一个,我必须手动删除旧的。这似乎不像它应该如何工作。

只是一个侧面的抱怨:似乎rake assets:precompile每次我改变一些东西时我都必须跑步。这是痛苦的。

(我想需要一些关于这一切如何工作的文档)。

谢谢。

4

1 回答 1

4

js文件的名字是<文件名>-<hash>.js。

这样当您将新版本的应用程序部署到生产服务器时,您的访问者也必须加载新的 js 文件。哈希确保他们不会混淆新应用程序和旧缓存 js,考虑到当今 Web 的动态特性,这可能会破坏整个应用程序。

在大多数部署方案中,您的应用程序将位于服务器上的新目录中,并且那里不会有旧的编译 js 文件。

于 2011-05-22T12:30:54.340 回答