我遇到一个问题,即通过CDN加载JavaScript库是有效的,但是使用bower从我自己的服务器上提供它不会。以下是正在发生的事情的最小示例(只是可以直接打开的HTML文件):
<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… }
然后我将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工作,本地文件没有。
答案 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