在将请求发送到服务器以获取 AMD 模块之前,是否可以修改 dojo AMD 加载程序使用的请求 url?我想附加一个带有版本号的请求参数。
我们试图解决的问题是我们希望浏览器缓存我们的 javascript 文件,除非应用程序的版本被更新。我认为如果我们可以在请求的 URL 中添加版本号,我们应该能够做到这一点。
在将请求发送到服务器以获取 AMD 模块之前,是否可以修改 dojo AMD 加载程序使用的请求 url?我想附加一个带有版本号的请求参数。
我们试图解决的问题是我们希望浏览器缓存我们的 javascript 文件,除非应用程序的版本被更新。我认为如果我们可以在请求的 URL 中添加版本号,我们应该能够做到这一点。
paths
config 属性似乎适用于单个模块,并且可cacheBust
用于所有模块。示例 jsfiddle。
<script>
var dojoConfig = {
paths: {
// version a single file by using path with version number
"aa": "mylib-aa.js?v=1.0",
// standard path, no explicit versioning
"bb": "mylib-bb"
},
// use v=1.0 for ALL loaded modules
cacheBust: "v=1.0",
waitSeconds: 10
};
</script>
<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/dojo.js"></script>
<script>
require(["aa", "bb"], function () {});
</script>
给予:
"NetworkError: 404 Not Found - https://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/mylib-aa.js?v=1.0.js&v=1.0"
"NetworkError: 404 Not Found - https://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/mylib-bb.js?v=1.0"
该paths
方法的问题是尾随的“.js”,但出于版本控制的目的,我认为这不是问题,因为 URL 在您希望的方式中仍然是唯一的。