Angular2导入路径在运行时错误

时间:2016-02-10 17:40:31

标签: typescript angular

我有一个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;)是目录树,它可以工作。

1 个答案:

答案 0 :(得分:1)

检查所有组件的导入路径,而不仅仅是这个组件。我在父组件中的语法错误,导致了这个问题。