问题描述:由于vue-router的history模式会让浏览器地址栏加后缀,这导致刷新时会出现404错误。
原因分析:刷新时浏览器根据地址栏的地址请求服务器,iis中没有找到这个路径对应的接口或文件,所以报错。
解决方案:
1、安装 url-rewrite,下载地址:URL Rewrite : The Official Microsoft IIS Site
2、在web网站根目录中创建一个 web.config
文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Handle History Mode and custom 404/500" 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>
3、重启IIS和程序,问题解决。