当您遇到Dumi打包的网站部署到IIS上可以正常打开首页,但刷新页面时出现404错误的情况,这通常与以下几个方面有关:
-
路由处理:
- Dumi生成的项目通常基于SPA(Single Page Application)架构,使用前端路由来实现无刷新导航。这意味着大部分页面切换是在浏览器层面完成的,而不是向服务器发送新的请求。
- 当直接访问首页时,服务器返回包含前端应用逻辑的HTML文件以及相关的JS、CSS等资源。然而,当用户在浏览器中手动刷新页面或直接访问某个内部路由(如
/docs/api
),IIS可能无法识别这些非根路径的请求,并尝试寻找实际的物理文件,从而导致404错误。
-
URL重写配置:
- 为了解决SPA应用在刷新或直接访问内部路由时的404问题,需要在IIS中配置URL重写规则,确保所有非静态资源的请求都被重定向回网站的入口HTML文件(通常是
index.html
)。这样,无论访问哪个路径,浏览器都会加载同一个HTML文件,由前端路由处理器解析URL并呈现对应的视图。
- 为了解决SPA应用在刷新或直接访问内部路由时的404问题,需要在IIS中配置URL重写规则,确保所有非静态资源的请求都被重定向回网站的入口HTML文件(通常是
-
Web.config配置:
- 在Dumi项目的根目录下,通常会有一个
web.config
文件,其中包含了针对IIS的URL重写规则。确保在部署时这个文件被正确上传至服务器,并且IIS能够识别和应用这些规则。 - 如果没有提供
web.config
,或者现有配置不适用于您的环境,您需要手动创建或调整该文件以实现所需的重写逻辑。一个基本的重写规则示例可能如下:
<configuration> <system.webServer> <rewrite> <rules> <rule
- 在Dumi项目的根目录下,通常会有一个