【发布时间】:2020-10-15 21:44:05
【问题描述】:
我正在尝试从 AngularJS 跳转到 Angular 2 及更高版本。我得到了这个:
在本地工作并没有太多麻烦,但是当我在这里将其发布到 Azure 时:
http://potrangulartest14-10-2020.azurewebsites.net/
它不起作用。我已经阅读了我所能阅读的所有内容,网上有多个来源说我必须将我的 WEBSITE_NODE_DEFAULT_VERSION 应用程序设置值设置为 10.6.0,或者将其添加到我的 web.config:
<system.webServer>
<rewrite>
<rules>
<rule name="Angular Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
但没有任何效果。有人可以解释一下我如何让这个 Angular 示例像在本地一样在 Azure 中工作吗?看来,Angular 路由元素根本没有在 Azure 中构建,尽管存在且完整,以便在本地工作。提前感谢您的帮助。
【问题讨论】:
-
您可以尝试只使用一个简单的 web.config:例如:
-
我假设您已经为生产构建了您的 spa 并且在您的应用服务中存在 dist 文件夹。
-
我无法让 web.config 工作,因为它抱怨路径为空。我在 debug 和 release 上都试过了,没有区别。
-
查看您的实时站点,在 node_modules 文件夹中有对脚本的引用。您是为生产而不是开发而构建的吗?脚本应该打包并直接从节点模块文件夹中引用,因为这可能在您的应用服务中不存在。
-
我尝试在 Visual Studio 的调试模式和发布模式下构建它,然后再将其发布到 Azure。我什么都不知道。最终结果似乎是一样的。