从CDN加载JavaScript库,从本地文件加载

时间:2015-08-11 09:58:21

标签: javascript

我遇到一个问题,即通过CDN加载JavaScript库是有效的,但是使用bower从我自己的服务器上提供它不会。以下是正在发生的事情的最小示例(只是可以直接打开的HTML文件):

从CDN

加载system@0.16.11.js
<html>
    <head>
        <script src="https://jspm.io/system@0.16.11.js"></script>
    </head>
    <body></body>    
</html>

如果我打开Firefox Web Console并输入System,我会得到:

System
Object { normalize: f/e.normalize(), locate: m/e.locate(), fetch: c/e.fetch(), translate: d/e.translate(), instantiate: d/e.instantiate(), _loader: Object, baseURL: "file:///…", paths: Object, originalSystem: Object, noConflict: $__global.upgradeSystemLoader/p.noConflict(), 17 more… }

从本地目录

加载system@0.16.11.js

然后我将the JavaScript file下载到与HTML文件相同的目录中,并将其修改为:

<html>
    <head>
        <script src="system@0.16.11.js"></script>
    </head>
    <body></body>    
</html>

如果我现在在控制台中输入System,我会得到:

System
ReferenceError: System is not defined

我应该补充一点,window.upgradeSystemLoader存在,这是一个在JavsScript库中定义的函数。所以至少检测到文件。

有什么区别?我试图通过我自己的服务器上的bower服务System.js,但我总是在这种情况下结束:CDN工作,本地文件没有。

1 个答案:

答案 0 :(得分:2)

缺少某些东西es6-module-loader@0.16.6.js我认为systemJs可以帮助你加载那个js文件。如果你检查你的控制台。你会发现es6-module缺失了。

在系统文件中,它需要src="'+basePath+'es6-module-loader@0.16.6.js

您可以下载它或更改systemJs源文件中的路径

您可以在此处下载es6-modules