我有一个angular2应用程序,在运行时它会尝试从错误的URL加载资源。
它应该在以下位置查找: http://localhost:54675/app/services/angular2-jwt.js,但它在以下地址查找: http://localhost:54675/app/的共享 /services/angular2-jwt.js。共享这个词不应该在路径中。
我在angular2中有这个结构:
app
---services
------angular2-jwt.ts
---shared
------country
---------country.service.ts
在country.service.ts中,我像这样引用angular2-jwt.ts:
import {AuthHttp} from '../../services/angular2-jwt';
正如你所看到的,那就是两个(进入应用程序)和进入服务。它应该给这个路径:app / services / angular2-jwt。 我看起来看起来正确的编译js:
System.register(['angular2/core', '../../services/angular2-jwt']
我正在使用Visual Studio并且智能感知工作。我在弹出窗口中看到AuthHttp作为该库的一个选项。我保存或构建时没有收到错误。我认为这是正确的。
在运行时,我在broswer控制台中收到此错误:
Error: Unable to load script: http://localhost:54675/app/shared/services/angular2-jwt.js
请注意脚本URL路径错误。它已经分享了#39;作为路径的一部分,但不应该。
我在浏览器中禁用了缓存。我在浏览器中查看js源代码,我看到上面提到的相同来源。它发生在chrome(我的默认)和Firefox(我很少使用)中,所以我不认为这是一个缓存问题。它如何走这条道路?
这是我在index.html上的SystemJS配置:
<script>
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('app/boot')
.then(null, console.error.bind(console));
</script>
我现在已经在另一台机器上复制了这个。但是,我从相同位置的不同文件导入同一个模块(&#39; ../../ services / angular2-jwt&#39;)是目录树,它可以工作。
答案 0 :(得分:1)
检查所有组件的导入路径,而不仅仅是这个组件。我在父组件中的语法错误,导致了这个问题。