我正在使用 Angular 5.2 并将其部署在我的 localhost IIS服务器中,并且工作正常。
我的本地主机URL看起来像这样:-http://localhost/DEV
DEV是我的localhost IIS服务器中的虚拟目录。上面的网址一切正常。
现在,我想在DEV中添加另一个嵌套的VD作为childApp。 我希望我的应用以 http://localhost/DEV/childApp 的身份运行。
因此,我将index.html内容更改为具有这样的基本href:-
<base href="/DEV/childApp/">
并且还将URL重写规则的web.config文件更新为:-
来自
<action type="Rewrite" url="./index.html" />
TO
<action type="Rewrite" url="/DEV/childApp/" />
Web.config看起来像这样:-
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<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="/DEV/childApp/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
但是这使我抛出错误::
HTTP错误500.52-URL重写模块错误。无法添加具有唯一键属性“名称”设置为“角度路线”的“规则”类型的重复收集条目
请建议如何修复web.config以进行URL重写或其他位置。
答案 0 :(得分:0)
将<clear />
添加到web.config是解决方案。
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear /> <!--Imperative Step, otherwise IIS will throw err-->
<rule name="Angular Routes" stopProcessing="true">
<match url=".*" />
............
..........