需要修复在Azure App服务上运行的Angular 2的路由问题

Kir*_*ohn 5 azure azure-web-sites angular

我有一个角度2的网站,基于Angular 2"英雄之旅"快速入门.

它在本地运行时工作正常.修复后不再使用本地node_modules(根据快速入门的部署步骤)并部署到Azure Web应用程序,如果我从根URL("/")开始,应用程序正常工作.但是,使用Angular路由更改URL(例如"/ home"),如果我对该URL执行F5刷新,则无法加载应用程序.当我这样做时,我得到404:

您要查找的资源已被删除,名称已更改或暂时不可用.

我尝试使用这里描述的web.config,但没有帮助.它似乎是一个IIS问题,它试图提供一个页面,而不是从index.html开始.我的路线在Angular中定义,它们在本地工作.

bip*_*tel 10

你可以试试这个web.config文件吗?

<configuration>
    <system.webServer>
         <rewrite>
            <rules>
              <rule name="AngularJS 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>
          <caching enabled="true" enableKernelCache="true">
              <profiles>
                  <add extension=".js" policy="DisableCache" kernelCachePolicy="DisableCache" />
              </profiles>
          </caching>
    </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)