Logo

Logo

IIS 部署 Vue 项目 404 问题解决方案

Xzavier Aaron
Xzavier Aaron 2026年03月06日
9 阅读 0 评论 约 2228 字 阅读约 5 分钟

在将使用 Vue Router 的 History 模式项目部署到 IIS 时,可能会遇到刷新页面或直接访问非首页 URL 时返回 404 的问题。这是因为 IIS 默认会尝试在物理路径下查找对应的文件或文件夹,而单页面应用(SPA)的路由是由前端接管的。以下是解决方案。


1. 核心修复方案:安装 URL 重写工具

1.1 安装 URL Rewrite 模块

IIS 默认不支持伪静态重写,因此需要安装微软官方提供的 URL Rewrite 模块:

1.2 配置 web.config

在 Vue 项目的打包输出目录(通常是 dist 文件夹)下,新建一个名为 web.config 的文件,并将以下内容粘贴进去:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Vue Router Rules" 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>

子目录部署注意: 如果你的项目访问路径是 http://domain.com/my-app/,请将最后一行修改为:
<action type="Rewrite" url="/my-app/" />


2. 辅助检查清单

如果配置 web.config 后问题仍未解决,请检查以下关键点:

2.1 MIME 类型支持

部分静态资源(如 .json.woff2.webp)可能因 IIS 未注册对应的文件类型而导致 404 错误。解决方法如下:

  1. 打开 IIS 管理器,选择对应的 站点
  2. 双击 MIME 类型
  3. 检查以下文件类型是否已注册,若无则手动添加:

  4. .json -> application/json

  5. .woff2 -> font/x-woff2
  6. .webp -> image/webp

2.2 基础路径 (Public Path)

确保 Vue 项目的构建配置与实际部署路径一致:

  • Vite (vite.config.ts):
    javascript
    base: '/' // 或 base: '/my-app/'
  • Vue CLI (vue.config.js):
    javascript
    publicPath: '/' // 或 publicPath: '/my-app/'

2.3 文件夹权限

确保 IIS 对部署目录(通常是 dist 文件夹)具有读取权限:

  1. 右键 dist 文件夹,选择 属性,切换到 安全 选项卡。
  2. 点击 编辑 -> 添加 -> 输入 IIS_IUSRS
  3. 勾选 读取和执行列出文件夹内容读取,然后保存。

3. 常见错误及调试建议

3.1 错误代码及原因

  • 404.0 错误:通常由路径错误或物理文件丢失引起。
  • 404.4 错误:通常由未安装 URL Rewrite 模块导致,web.config 配置未生效。
  • 500.19 错误:通常由 web.config 格式错误或文件权限不足引发。

3.2 调试工具

  • 使用浏览器开发者工具(Network 面板)检查请求路径和返回的状态码。
  • 查看 IIS 日志(默认路径:%SystemDrive%\inetpub\logs\LogFiles)获取详细的错误信息。
  • 使用 IIS 自带的 请求筛选失败请求跟踪规则 功能,精确定位问题。

需要我帮你针对特定的子目录路径(例如 /admin)重新生成一份 web.config 文件吗?请随时告知!

查看完整代码

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
部分文章可能存在转载,如果涉及到侵权,请联系删除文章。

留言板

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

10 - 8 = ?

探索AIGC相关的精彩内容,共 15 篇文章

Azure AI 服务之语音识别

简介 Azure AI 服务中的语音识别 API 是微软提供的一项先进技术,旨在帮助开发者轻松实现语 ... IIS 部署 Vue 项目 404 问题解决方案

2026-02-17 · Xzavier Aaron
MCP | 一文详解什么是 MCP以及 MCP 可以做什么

一、什么是 MCP MCP(Model Context Protocol)是一个专为大型语言模型(L ... IIS 部署 Vue 项目 404 问题解决方案

2026-02-14 · Shen, Luke
你的工作流程,值得一个“全自动数字分身”:录制、截图、成文,一气呵成

一、一句话认识 TestFlow Recorder 在数字化工作环境中,如何准确记录操作步骤并生成清 ... IIS 部署 Vue 项目 404 问题解决方案

2026-02-14 · Xzavier Aaron
Flowise 前端框架配置指南

用户需求 问题:有没有适合配置 Flowise 的前端框架? 目标:寻找类似 Open WebUI ... IIS 部署 Vue 项目 404 问题解决方案

2026-02-14 · Xzavier Aaron