【问题标题】:Getting 404 error on page refresh in Angular 4在 Angular 4 中刷新页面时出现 404 错误
【发布时间】:2017-11-09 07:23:30
【问题描述】:

我们使用“ng build --prod”cli 命令部署了 angular 4 应用程序,并创建了托管在 IIS 8.5 上的“dist”文件夹,当我们运行该应用程序时,它工作正常,但如果按下 F5 键则会出现 404 错误。

注意:如果建议不要使用 (useHash:true),那么我们如何从 url 中删除 '#'。

如果有人可以建议我们,我们将不胜感激。

【问题讨论】:

  • 您必须使用web.config 来指示服务器不要寻找该路由,而是将其指向index.html
  • 请不要将 [angularjs] 标签用于 angular 2 或更高版本。 [angularjs] 指 1.x 版本

标签: angular iis-8.5


【解决方案1】:

您可以像下面这样编写更改您的 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>

让我解释一下这个配置

<match url=".*" />

这匹配所有即将到来的 url,而不是使用操作在您的基本路径中重定向

<action type="Rewrite" url="/" />

如果您将项目设置在子文件夹中而不是更改您的 url="/subfolder/"

【讨论】:

  • 感谢您的帖子!但是当我们在 dist 文件夹中添加 web.config 时,我们收到 HTTP 错误 500.19 - 内部服务器错误。
  • 您可以查看此链接codeproject.com/Questions/299151/…
猜你喜欢
  • 2023-01-26
  • 1970-01-01
  • 1970-01-01
  • 2017-12-17
  • 1970-01-01
  • 2019-10-06
  • 1970-01-01
  • 2018-04-03
  • 1970-01-01
相关资源
最近更新 更多