我正在使用 RequireJS 加载一些模块。
我正在使用镜像 CDN 提供静态资产。问题是模块是相对于网站域而不是数据主文件加载的,因此模块是以这种方式加载的:
my-website.com/
↳ cdn.com/assets/js/require-main.min.js
↳ my-website.com/assets/js/helper-module.js
↳ my-website.com/assets/js/utility-module.js
有没有办法相对于数据主文件加载模块,以便使用 CDN 为模块提供服务?
my-website.com/
↳ cdn.com/assets/js/require-main.min.js
↳ cdn.com/assets/js/helper-module.js
↳ cdn.com/assets/js/utility-module.js
我不能在任何地方对 CDN 域进行硬编码,因为它并不总是相同的。
这是一个样本require-main.js
requirejs.config({
baseUrl: "../js/",
waitSeconds: 15,
paths: {
helper: "helper-module",
...
}
});
这是rjs.optimize
我用来缩小所有资产并组合一些模块的功能
rjs.optimize({
appDir: './assets/js/',
baseUrl: ".",
mainConfigFile: './assets/js/require-main.js',
dir: './public/assets/js/',
preserveLicenseComments: true,
optimize: 'uglify2',
findNestedDependencies: true,
logLevel: 0,
uglify2: {
mangle: false
},
modules: [
{
name: 'require-main'
...
}
],
removeCombined: true,
writeBuildTxt: false
});