【发布时间】:2018-12-05 03:51:51
【问题描述】:
我有一个部署在 Azure 上的 Angular4 Web 应用程序。现在我想将此应用程序部署到 Azure 上的其他环境:一个用于测试,一个用于验收,一个用于生产。每个环境都有不同的 API 端点,并且可能有其他变量,例如 Application Insights。所有这些环境都在生产模式下运行 Angular。
Angular 建议您这样做的方式是通过环境文件(environment.test.ts、enviroment.acc.ts、environment.prod.ts)。例如,我可以在这些文件中配置所有不同的 API 端点,并使用 --prod 运行我的构建以用于生产。
但这不是我想要的方式。我想使用部署的完全相同的应用程序包来测试我的验收环境,而无需重新构建项目。在 Visual Studio Online 中,这也很容易配置。
重点是:我怎样才能使我的 API 端点以这种方式在每个环境中有所不同?
我想要这样做的方式是通过 Azure 中的应用程序设置。但是 Angular 无法访问这些环境变量,因为它是在客户端运行的。 Node.js 在服务器端运行并且可以获得这些应用程序设置 - 但如果这是我需要这样做的方式,我如何让 Node.js(在 Angular4 CLI 中使用)将这些服务器变量发送到客户端?该解决方案的性能影响又如何?
您是如何为 Azure 上的 Angular4 应用解决这个问题的?使用 Azure 应用设置是否无法解决此问题?
【问题讨论】:
-
感谢您的评论!但我不能使用第一个链接,因为我没有 index.cshtml 文件(我在客户端使用我的角度代码纯粹)。第二个链接只是说这是不可能的。恐怕是……但我仍然希望有办法做到这一点。
标签: node.js angular azure azure-web-app-service