在我的angular cli app中,我使用adal-angular4进行登录验证。在Azure中部署时,当路由从主页开始使用登录流时,应用程序可以正常工作。但刷新任何其他路线上的页面会产生404错误。
错误:您要查找的资源已被删除,名称已更改或暂时无法使用。
发现Hashlocationstrategy解决了这个问题所以我把它添加到我的AppModule
这会将我的应用程序放在localhost中以在登录阶段循环。该应用永远不会到达主页。
应用程序不断循环这两条路线。有什么可以解决这个问题吗?
答案 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>