通过浏览器中的地址栏在重定向角度应用程序中出现错误404

时间:2019-08-14 06:18:28

标签: angular nginx

通过浏览器中的地址栏在重定向角度应用程序中出现错误404,但是在通过ng serve命令运行角度应用程序后,何时在浏览器中起作用,一切正常。 我在Nginx中的配置是:

 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
                root “D:\Tools\nginx-1.16.0\nginx-1.16.0\html”;
                try_files $uri $uri/ /index.html?$args;
       }

注意: 当前在索引html文件中定义基础

 <base href="/">

1 个答案:

答案 0 :(得分:1)

您有两个选择,可以使用任何适合您的选择:

  1. 在Nginx服务器配置规则中进行更改以重定向。
  2. 使用Angular的HashLocationStrategy

#1

我不知道Nginx的配置设置,但是对于IIS。您可以找到以下等效项:

<system.webServer>
 <rewrite>
      <rules>
        <rule name="redirect all requests" stopProcessing="true">
          <match url="^(.*)$" ignoreCase="false"/>
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false"/>
          </conditions>
          <action type="Rewrite" url="samcds/index.html" appendQueryString="true" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>

2。

在您的应用模块中,添加以下提供商:

 providers: [Location, {provide: LocationStrategy, useClass: HashLocationStrategy}], 

推荐人https://angular.io/api/common/HashLocationStrategy