1

我是 ember 新手,在部署 ember 应用程序时遇到了问题。我正在使用 ember 服务器来为我的 ember 应用程序提供服务,该应用程序是在启用指纹识别的情况下构建的。

/app/node_modules/ember-cli/bin/ember build --environment=production

当我在生产模式下运行它时,它运行良好,直到我扩展到多个部署。

/app/node_modules/ember-cli/bin/ember server --port 80 --live-reload=false --environment $EMBER_ENV

当我在负载均衡器中有多个 ember 服务器实例时,每个生成的指纹都不同,即使它们是相同的构建,这会导致间歇性 404。

172.x.x.x - - [18/Jul/2017:18:44:59 +0000] "GET /assets/vendor-a4e09847ae5ed0421fd631873a322bdb.js HTTP/1.1" 404

  • 这个指纹是在运行时而不是构建时生成的吗?
  • 有什么办法可以让它成为构建时间的动作吗?

非常感谢。

4

1 回答 1

3

这绝对是一个构建时间。结果ember build是一个dist带有 generated 的文件夹index.html,其中包含对指纹资产和 CSS、JavaScript、图像等资产的引用。

确保您的index.html文件没有被缓存,并且您正确地将文件夹的内容传播dist到每个节点。

要查看它是否在禁用缓存的情况下工作,您可以在 Chrome 中打开开发者工具,转到网络选项卡并选中“禁用缓存”选项。

虽然您希望缓存和负载平衡您的指纹资产非常棒,但您需要非常小心,index.html因为它应该始终与新版本保持同步。

于 2017-07-18T19:11:55.837 回答