Requirejs - 版本控制

Jib*_*ham 13 javascript requirejs

快速注释 - 通过版本控制我的意思是出于缓存破坏的目的.在脚本请求结束时添加查询参数的常见做法并不适用于所有浏览器.到目前为止,我发现的最简单,最混乱的方法是对整个部署文件夹名称进行版本控制.

-- scripts.v1
-- scripts.v2
Run Code Online (Sandbox Code Playgroud)

但是这非常混乱并且部署时间也很长(我使用S3作为我的cdn).有没有人知道另一种方法呢?

编辑

看来,我还不是很清楚.让我更明确一点.

我在我的网站上使用requirejs.它是一个非常JavaScript的应用程序,经常更新和迭代.现在有了requirejs,我能够可靠地确保浏览器提供最新版本的唯一方法是对我的整个部署文件夹名称(javascript)进行版本化并再次将整批文件上传到S3.然后我使用该data-main方法设置项目的基本路径.

由于许多原因,这非常麻烦.即使代码更改只是几行,也必须重复整个过程.还有其他一些不错的方法让requirejs知道文件有版本吗?如同,如果我打电话

require(["superImportantJSFile"], function(){})
Run Code Online (Sandbox Code Playgroud)

它会知道当前的版本是superImportantJSFile.v4.js什么或类似的东西.

我希望我现在更清楚了.关于社区如何做到这一点的任何建议?我很确定这必须是一个常见的场景,但我还没有找到一个好的解决方案

Mic*_*les 3

HTML5 Boilerplate提供了我见过的最优雅的解决方案之一。他们有可用于Apachenginx的配置。从那里,您可以在标签内的文件名中添加时间戳script,如下所示:

<script src="scripts/app.20130728.js"></script>
Run Code Online (Sandbox Code Playgroud)

Web 服务器将重写为scripts/app.js.