RequireJS - 使用CDN

时间:2016-04-04 12:40:15

标签: javascript html css angularjs requirejs

我有一个用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 中明确提及?

1 个答案:

答案 0 :(得分:0)

path fallbacks。您必须为依赖项分配ID,并将该ID定义为首先使用CDN(本地秒)进行路径映射。不幸的是,您必须为每个依赖项执行此操作。

另一方面,考虑使用RequireJS优化器将您的应用程序捆绑到一个文件或一堆文件中,然后使用CDN这些文件。这样,您就不必对每个依赖项进行ID。