我已经尝试过 Angular 2 QuickStart 并进行了测试。我们确实需要将 html 和 css 分开以适应我们的设计人员,因此使用 templateUrl 等至关重要。但一旦我用 templateUrl 替换 template 并指向 html 文件,测试就开始失败。
Karma 报告“WARN [proxy]:无法代理 base/app/test.html(套接字挂起)”,并且查看网络跟踪,它尚未转换 URL。所有 JS 都被翻译为/base/app,但无论我如何处理文件模式和代理,它都会继续转为/app/test.html 而不是/base/app/test.html。在组件中,templateUrl 设置为“app/test.html”。我也在那里尝试了所有可能的变化。
唯一能让测试通过的是在 karma.conf.js 中为 html 设置 include:true ,并在 templateUrl 中指向/base/app/test.html 。 我的印象是,使用 karma 代理会在翻译所有请求的网址之间做出“某些事情”?
我使用了快速入门存储库中发布和最新提交的文件。
编辑:此问题现已在 Angular/quickstart 项目中得到修复。 :)
https://github.com/angular/quickstart/issues/329#issuecomment-271800205
最佳答案
我现在测试快速入门时遇到了同样的问题。我只需将 karma.conf.js
中的 appAssets
从原来的 base/app/
更改为 即可修复此问题/base/app/
据我了解,问题是,如果您尝试代理 /app/
,这是快速入门的 karma.conf
中使用的内容
var appAssets = 'base/app/'
proxies: {
"/app/": appAssets
},
为什么要将其替换为前面没有 /
的路径。这会导致 /app/
变为 base/app/
,当您考虑 URL 的解析方式时,两者是不一样的。
关于angular - Karma 无法使用 Angular 2 快速入门配置代理 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41243183/