在生产中使用 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

要使此修复生效,请确保模板文件与引用它的组件位于同一文件夹中,并且您有一个格式为

的模板 url

templateUrl: './myComponent.component.html'

这是因为 systemjs-angular-loader 会检查 templateUrl 中的点

  if (url.startsWith('.')) 
    resolvedUrl = basePath + url.substr(1);
  

【讨论】:

以上是关于在生产中使用 systemjs-angular-loader.js - 给出 404的主要内容,如果未能解决你的问题,请参考以下文章

ActionCable - 无法在生产中升级到 WebSocket

API 数据不会在生产中更新,但在本地工作

与 Flask 捆绑在一起的服务器在生产中使用是不是安全?

在生产中禁用 graphiql

在生产中使用“coffee”而不是“node”命令

使用 nestjs 和 mongoose 哈希密码在生产中崩溃