我正在使用RequireJS(jQuery版本),我想在我的脚本中添加GET参数以防止不必要的缓存。
我正在使用the urlArgs parameter,正如文档中所建议的那样。这是我的app-build.js
文件:
({
appDir: "../",
baseUrl: "scripts/",
urlArgs: "cache=v2",
...
然后我按如下方式构建项目:
$ node ../../r.js -o app.build.js
app-build目录中的输出现在包含require-jquery.js
和require-jquery.js?cache=v2
,后者与以前相同,而index.html
则为空白。
cache=v2
文件似乎没有cache=v2
的任何引用。当我在浏览器中加载页面时,我没有看到任何脚本附加任何{{1}}参数。
我做错了吗?
答案 0 :(得分:1)
urlArgs上的文档:
“在开发过程中,使用它可能很有用, 但是在部署代码之前一定要删除它“
和this issue from Github,James Burke: “在构建期间不要尝试使用urlArgs”
答案 1 :(得分:1)
urlArgs参数更多是运行时配置(即,只有RequireJS才能理解,而不是r.js优化器),似乎是因为其作者stated认为它只适合开发(和“坏”) “不发送正确标头的开发服务器”。所以你需要在require.config调用中配置它(在require.js加载的.js文件中,通常是main.js或config.js):
require.config({
// other config, like paths and shim
urlArgs: "cache=v2"
});
或者,根据其他SO answer,您可以在加载require.js之前直接在<script>
块中定义它。
答案 2 :(得分:0)
我会尝试为优化器使用不同的build.js文件,使用运行实时应用程序的build.js文件。根据您的描述,优化器脚本似乎没有正确处理urlArgs参数(因为它输出了一个名为require-jquery.js?cache = v2的文件)。
我不希望cache = v2出现在index.html中(为什么会这样?),但你可以在网络活动日志中预料到它。