将HashLocationStrategy与Adal一起使用会导致无限路由

时间:2017-09-18 04:48:28

标签: angularjs angular-cli

在我的angular cli app中,我使用adal-angular4进行登录验证。在Azure中部署时,当路由从主页开始使用登录流时,应用程序可以正常工作。但刷新任何其他路线上的页面会产生404错误。

错误:您要查找的资源已被删除,名称已更改或暂时无法使用。

发现Hashlocationstrategy解决了这个问题所以我把它添加到我的AppModule

My AppModule

这会将我的应用程序放在localhost中以在登录阶段循环。该应用永远不会到达主页。Initial load of localhost:4200 routing loop

应用程序不断循环这两条路线。有什么可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我通过将web.config文件添加到我的应用程序并将其包含在dist build文件夹

中解决了这个问题
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="AngularJS" stopProcessing="true">
          <match url="^(?!.*(.bundle.js|.bundle.map|.bundle.js.gz|.bundle.css|.bundle.css.gz|.png|.jpg|.ico|.eot|.woff2|.woff|.svg|.ttf)).*$" />
          <conditions logicalGrouping="MatchAll">
          </conditions>
          <action type="Rewrite" url="/"  appendQueryString="true" />
        </rule>
      </rules>
    </rewrite>
    <staticContent>
            <remove fileExtension=".eot" />
            <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
            <remove fileExtension=".ttf" />
            <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
            <remove fileExtension=".svg" />
            <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
            <remove fileExtension=".woff" />
            <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
            <remove fileExtension=".woff2" />
            <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
            <remove fileExtension=".json" />
           <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>
  </system.webServer>
</configuration>