0

我在本地服务器上运行我的应用程序,它工作正常,当我们托管它时,它开始工作正常,直到我刷新页面并发生 404 错误。在此处输入图像描述

然后我想出了使用 HashLocationStrategy 的解决方案。它工作得很好。但它在我的网址中添加了一个“#”符号作为“ http://everest.syslogix.ca/#/fastcom/admin-dash ”。但它工作得很好。之后,我想在此应用程序中添加linkedIn 登录,但它需要一个不带“#”符号的受信任 url。

在此处输入图像描述

现在我该怎么办?我在互联网上搜索过,尝试了很多解决方案,但没有一个对我有用。我想要一个没有哈希的 URL,它在我重新加载页面时可以正常工作。或者我想要某种方法来启用带有哈希的 URL 以在linkedIn 上存储为受信任的 URL。

4

2 回答 2

1

您必须将重写规则添加到 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="/index.html" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>
于 2019-12-13T07:16:44.700 回答
0

解决了!!

1- 使用文本创建一个文件 web.config:-

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

  </system.web>
<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>

2- 将此文件放在 src 文件夹中。3-修改您的 angular.json 文件以包含 web.config 文件,在资产标签中为:

"

assets": [
              "src/favicon.png",
              "src/assets",
              "src/web.config"
                        ],

4-ng build --prod 5-发布并享受。

于 2019-12-13T11:46:01.597 回答