Karma 无法使用 Angular 2 快速启动配置代理 html
Karma fails to proxy html with the Angular 2 quickstart config
我玩过 Angular 2 QuickStart 和测试。我们确实需要将 html 和 css 分开以适应我们的设计人员,因此使用 templateUrl 等至关重要。但是,一旦我用 templateUrl 替换模板并指向 html 文件,测试就开始失败。
Karma 报告 "WARN [proxy]: failed to proxy base/app/test.html (socket hang up)",并查看网络跟踪,它没有翻译 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 代理会使 "something" 在翻译所有请求的 url 之间?
我使用了来自快速启动存储库的发布和最新提交的文件。
编辑: 这已在 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
},
为什么要将其替换为 前面也没有 /
的路径。当您考虑 URL 的解析方式时,这会导致 /app/
变为 base/app/
,但两者并不相同。
我玩过 Angular 2 QuickStart 和测试。我们确实需要将 html 和 css 分开以适应我们的设计人员,因此使用 templateUrl 等至关重要。但是,一旦我用 templateUrl 替换模板并指向 html 文件,测试就开始失败。
Karma 报告 "WARN [proxy]: failed to proxy base/app/test.html (socket hang up)",并查看网络跟踪,它没有翻译 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 代理会使 "something" 在翻译所有请求的 url 之间?
我使用了来自快速启动存储库的发布和最新提交的文件。
编辑: 这已在 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
},
为什么要将其替换为 前面也没有 /
的路径。当您考虑 URL 的解析方式时,这会导致 /app/
变为 base/app/
,但两者并不相同。