我对 urlArgs 解决方案感到非常沮丧,最后放弃并直接在 require.js 中实现了我自己的修复。如果您愿意修改您的库版本,此修复将实现您的理想解决方案。
你可以在这里看到补丁:
https://github.com/jbcpollak/requirejs/commit/589ee0cdfe6f719cd761eee631ce68eee09a5a67
添加后,您可以在需要配置中执行以下操作:
var require = {
baseUrl: "/scripts/",
cacheSuffix: ".buildNumber"
}
使用您的构建系统或服务器环境替换buildNumber
为修订 ID 或软件版本。
像这样使用要求:
require(["myModule"], function() {
// no-op;
});
将导致要求请求此文件:
http://yourserver.com/scripts/myModule.buildNumber.js
该补丁将忽略任何指定协议的脚本,并且不会影响任何非 JS 文件。
在我们的服务器环境中,我们使用 url 重写规则来去除 buildNumber,并提供正确的 JS 文件。这样我们实际上不必担心重命名我们所有的 JS 文件。
这适用于我的环境,但我意识到有些用户更喜欢前缀而不是后缀,应该很容易修改我的提交以满足您的需要。
以下是一些可能重复的问题:
RequireJS 和代理缓存
防止 RequireJS 缓存所需的脚本