在生产中使用 systemjs-angular-loader.js - 给出 404
Posted
技术标签:
【中文标题】在生产中使用 systemjs-angular-loader.js - 给出 404【英文标题】:using systemjs-angular-loader.js in production - gives 404 【发布时间】:2017-10-06 16:34:45 【问题描述】:我正在使用最新的 angular / quickstart 项目,它使用 systemjs-angular-loader.js 来加载应用程序相关的 html 模板(不需要 moduleId 属性)。
该项目在开发/测试中运行良好(使用“npm start”服务页面)。但是,当使用 gulp 构建生产环境时,项目将恢复为在根文件夹(而不是应用程序相关文件夹)中查找 html 模板。
在生产中使用/构建“systemjs-angular-loader.js”是否需要任何特殊步骤?我能找到的对 system-angular-loader.js 的唯一引用是404s after updating to systemjs-angular-loader.js,我已经关注了它,但这并没有帮助。
为简洁起见,我没有包含我的 gulpfile.js,但我正在使用 gulp-typescript 和 systemjs-builder(以及其他)。
【问题讨论】:
你看到了吗:angular.io/docs/ts/latest/guide/deployment.html 是的,看到了。我没有看到任何特定于我的问题的内容(除非我遗漏了什么?)。 【参考方案1】:这可能不是您的情况的解决方案,但对于其他在运行 karma 时遇到相同问题的人,您需要更新到最新的 systemjs-angular-loader.js。
最近进行了一项更改以修复未加载的外部模板:link 和 issue
要使此修复生效,请确保模板文件与引用它的组件位于同一文件夹中,并且您有一个格式为
的模板 urltemplateUrl: './myComponent.component.html'
这是因为 systemjs-angular-loader 会检查 templateUrl 中的点
if (url.startsWith('.')) resolvedUrl = basePath + url.substr(1);
【讨论】:
以上是关于在生产中使用 systemjs-angular-loader.js - 给出 404的主要内容,如果未能解决你的问题,请参考以下文章