在浏览器刷新时,在IIS中部署时,router.navigate(['/'])
在Angular 4中可能不起作用的原因是因为IIS默认情况下会将所有的路由请求都发送到服务器端,而不是交给Angular的路由器处理。这会导致在刷新页面时,服务器会尝试寻找与路由路径相匹配的文件或目录,而不是返回Angular应用的根页面。
为了解决这个问题,可以进行以下步骤:
{R:1}
。在"操作"字段中选择"重定向",并在"重定向URL"字段中输入/index.html
。保存并应用规则。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="/" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
index.html
。然后,在"错误页面"中,选择"添加",将状态代码设置为404,将响应类型设置为"文件",并在"路径"字段中输入/index.html
。保存更改。通过以上步骤,当浏览器刷新时,IIS会将路由请求重定向到Angular应用的根页面,从而使router.navigate(['/'])
能够正常工作。
关于Angular 4的更多信息,你可以参考腾讯云的产品文档:Angular 4产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云