小编典典

防止RequireJS缓存所需的脚本

javascript

RequireJS似乎在内部做一些缓存所需的javascript文件的操作。如果我更改了所需的文件之一,则必须重命名该文件才能应用更改。

将版本号作为查询字符串参数附加到文件名末尾的常见技巧不适用于requirejs <script src="jsfile.js?v2"></script>

我正在寻找的是一种防止RequireJS必需脚本在内部进行缓存的方法,而不必在每次更新脚本文件时都对其重命名。

跨平台解决方案:

现在,我用于urlArgs: "bust=" + (new Date()).getTime()开发和urlArgs: "bust=v2"生产期间的自动缓存清除,在部署更新的必需脚本后,我增加了硬编码版本num。

注意:

@Dustin
Getz在最近的回答中提到,当像这样不断刷新Javascript文件时,Chrome开发者工具会在调试过程中删除断点。一种解决方法是debugger;在大多数Javascript调试器中编写代码以触发断点。

服务器特定的解决方案:

有关可能更适合您的服务器环境(例如Node或Apache)的特定解决方案,请参见以下一些答案。


阅读 462

收藏
2020-05-01

共1个答案

小编典典

可以将RequireJS配置为向每个脚本URL附加一个值以进行缓存清除。

从RequireJS文档:

urlArgs :附加到RequireJS用于获取资源的URL的附加查询字符串参数。当浏览器或服务器配置不正确时,最有用的方法是缓存崩溃。

示例,将“ v2”附加到所有脚本:

require.config({
    urlArgs: "bust=v2"
});

出于开发目的,您可以通过添加时间戳来强制RequireJS绕过缓存:

require.config({
    urlArgs: "bust=" + (new Date()).getTime()
});
2020-05-01