我有一个angular2应用程序,并在运行时它尝试从错误的URL加载资源.
它应该寻找:
@L_404_0@,但它在以下地址寻找:
http://localhost:54675/app/shared /服务/ 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和intelliSense工作.我在弹出窗口中看到AuthHttp作为该库的一个选项.我保存或构建时没有出错.我认为这是正确的.
在运行时,我在broswer控制台中收到此错误:
Error: Unable to load script: http://localhost:54675/app/shared/services/angular2-jwt.js
请注意脚本URL路径错误.它作为路径的一部分“共享”但不应该.
我在浏览器中禁用了缓存.我在浏览器中查看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>
我现在在另一台机器上复制了这个.但是,我从类似位置的不同文件导入同一个模块(‘../../services/angular2-jwt’)是目录树,它可以工作.
解决方法
检查所有组件的导入路径,而不仅仅是这个组件.我在父组件中的语法错误,导致了这个问题.