【问题标题】:Angular App Url always saying 404 on refresh after deploy on IIS在 IIS 上部署后,Angular App Url 总是在刷新时显示 404
【发布时间】:2018-12-04 11:43:38
【问题描述】:

我在 Windows 服务器的 IIS 上部署了一个使用 Angular 6 开发的应用程序。 现在我面临一个问题,如果我刷新页面,在导航应用程序时会显示 404 - 找不到文件或目录。 我查看了与此问题相关的帖子并尝试应用修复。但没有运气。 我不想在我的网址中使用#。我只想使用像http://example.xyz.com/detail/12这样的网址

如果我使用#,那很好,但我不想使用#。

我也尝试添加 web.config,但没有成功。任何人都可以在这里帮助如何解决此问题,以便在刷新时可以打开我想要重新加载的同一页面。

 <?xml version="1.0" encoding="utf-8"?>
<configuration>

<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="./index.html" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

</configuration>

【问题讨论】:

  • 你应该配置iis路由到未知url上的index.html,因为它认为你的角度路由是服务器上的一个文件夹,并返回404,因为实际上没有这样的文件夹
  • 怎么做?请解释一下。因为在 IIS 的默认文档中已经存在 index.html
  • 我不是 iis 大师,但我想像这样 stackoverflow.com/a/43787391/6528560

标签: angular angular-routing


【解决方案1】:

点击此链接解决此问题 Angular 2 Hosted on IIS: HTTP Error 404 或者只是

第 1 步:安装 IIS URL Rewrite 模块

第 2 步:向 web.config 添加重写规则

<?xml version="1.0" encoding="utf-8"?>
    <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>
      </system.webServer>
    </configuration>

【讨论】:

  • 以上内容即使在 Azure 主机上也有效,只需要在 "wwwroot" 目录中添加 web.config 文件,默认 web.config 文件在 angular build --prod 中不可用,所以我们需要手动添加 web.config 文件
猜你喜欢
  • 1970-01-01
  • 2020-02-15
  • 1970-01-01
  • 2017-12-17
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 2018-05-02
相关资源
最近更新 更多