我有一个用AngularJS编写的大型客户端项目,它使用RequireJS进行异步模块加载。
我的许多Angular指令都使用自己的HTML和CSS。 例如:
define(function (require) {
require('css!path/to/directive-name.css');
app.directive('directive-name', function () {
return {
restrict: 'E',
template: require('text!path/to/directive-name.html'),
controller: function ($scope) {
// code
}
};
});
});
这些天我正致力于使我的应用程序使用CDN服务。
因此,对于所有JavaScript文件,我已将require.config.js
文件更改为:
paths: {
app: [
'//cdn.domain.net/path/to/main',
'main'
],
}
但是在我的应用程序的启动页面上加载了很多指令,并且每个指令都有两个文件(CSS,HTML)从我的源服务器而不是从CDN加载。
我可以通过什么方式修改require.config.js
文件,使浏览器从CDN服务器获取htmls,css?
是否存在针对每个文件的选项 - 浏览器将从CDN获取它并在CDN失败的情况下回退到我的原始服务器< strong>虽然未在require.config.js
中明确提及?
答案 0 :(得分:0)
有path fallbacks。您必须为依赖项分配ID,并将该ID定义为首先使用CDN(本地秒)进行路径映射。不幸的是,您必须为每个依赖项执行此操作。
另一方面,考虑使用RequireJS优化器将您的应用程序捆绑到一个文件或一堆文件中,然后使用CDN这些文件。这样,您就不必对每个依赖项进行ID。