Angular2 - 在 Azure 中托管时页面刷新 404ing

2023-11-22

我正在开发 Angular2 应用程序。它使用“@Angular/common”:“2.0.0-rc.4”和“@Angular/router”:“3.0.0-beta.2”。

我的问题是,当我在某些页面上使用浏览器刷新时,我看到一条错误消息...

"您正在查找的资源已被删除、更名或暂时不可用。”

如果我直接点击网址也会发生这种情况。

一个示例网址是...https://tilecasev2.azurewebsites.net/profile/therichmond

但是,如果您通过主页查看页面,它们可以正常工作,但只有在刷新之前(https://tilecasev2.azurewebsites.net).

我的index.html 头中有以下内容...

<base href="/"> 

为什么会发生这种情况以及如何解决它?


HashLocationStrategy通过包含一个来避免这个问题#在你所有的角度路线中,但并不是真的fix it.

要使没有哈希的角度路由在 azure 中像在本地开发环境中一样工作,您只需将 IIS 配置为以 root 身份重写所有请求。这让 Angular 处理路由。

为此,请添加一个Web.config文件到您网站的根文件夹,其中包含以下内容:

<configuration>
<system.webServer>
    <rewrite>
      <rules>
        <rule name="Main Rule" 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>
</configuration>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular2 - 在 Azure 中托管时页面刷新 404ing 的相关文章