You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue/Vite多页应用按官方配置开发环境访问子路径返回404排查

问题核心原因

Vite 2.x 默认多页自动识别规则为扫描项目根目录下所有层级的.html文件作为入口,你当前的两个入口文件都放在/src/子目录下,访问路径和文件实际存放路径不匹配,也没有手动配置入口映射,因此会返回404。官方文档提到的无需额外配置的场景,指的是入口文件夹直接放在项目根目录下,而非嵌套在src目录中。

修复方案

方案一:保留现有目录结构,添加配置

在项目根目录的vite.config.js中添加如下配置,即可实现开发环境直接通过/portal、/admin访问,同时构建时生成独立的输出包:

import { defineConfig } from 'vite'
import { createVuePlugin } from 'vite-plugin-vue2'
import pugPlugin from 'vite-plugin-pug'
import path from 'path'

export default defineConfig({
  plugins: [
    createVuePlugin(),
    pugPlugin()
  ],
  // 配置多入口,保证构建阶段生成独立包
  build: {
    rollupOptions: {
      input: {
        portal: path.resolve(__dirname, 'src/portal/index.html'),
        admin: path.resolve(__dirname, 'src/admin/index.html')
      }
    }
  },
  // 开发服务路径重写,适配现有目录结构
  server: {
    rewrite: [
      { from: /^\/portal/, to: '/src/portal/index.html' },
      { from: /^\/admin/, to: '/src/admin/index.html' }
    ]
  }
})

配置后还要检查两个入口的index.html内的脚本引用路径是否正确,比如admin的index.html需要正确引入同目录下的app.js:

<script type="module" src="./app.js"></script>

方案二:调整目录结构适配默认规则

如果不想额外添加配置,可以把portal、admin两个入口文件夹从/src/下移动到项目根目录,调整后的目录结构如下:

/
/portal/
/portal/index.html
/portal/app.vue
/admin/
/admin/index.html
/admin/app.vue
/admin/app.js
/src/ (存放公共组件、样式、api、auth等公共支撑代码)

该结构完全符合Vite默认的多页识别规则,不需要修改vite.config.js即可正常访问。

配套注意事项

  • 两个入口的vue-router配置要分别设置base路径,portal对应/portal/,admin对应/admin/,避免路由跳转冲突
  • 公共代码统一放在/src/目录下,两个入口直接通过路径引入即可实现复用
  • 构建后dist目录会生成对应入口的独立文件,部署时按路径挂载即可

内容的提问来源于stack exchange,提问作者Tremendus Apps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:54:02