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

Vue项目npm run build后vue-router失效,WAMP部署空白页求助

解决Vue项目部署到WAMP子目录后空白、路由失效的问题

兄弟,我看你这情况是典型的开发环境和生产环境路径不匹配加上history模式路由需要服务器支持导致的,别慌,一步步来就能搞定:

1. 先修正Webpack的资源路径配置

你的webpack.config.js里output.publicPath设成了/dist/,这是根目录下的路径,但你部署在localhost/project_name这个子目录里,服务器会去localhost/dist/找资源,肯定找不到啊!

修改webpack.config.js里的output部分:

output: {
    path: path.resolve(__dirname, './dist'),
    // 推荐用相对路径,适配任意子目录;也可以硬编码对应你的项目路径
    publicPath: './dist/', 
    // 硬编码写法:publicPath: '/project_name/dist/'
    filename: 'build.js'
},

2. 配置Vue Router的base路径

如果你用了Vue Router的history模式(默认是带#的hash模式),必须给路由配置base选项,对应你的子目录:
找到你的路由配置文件(一般是src/router/index.js),修改如下:

import Vue from 'vue'
import Router from 'vue-router'
// 导入你的组件...

Vue.use(Router)

export default new Router({
  mode: 'history', // 若用hash模式可省略,但history模式必须配置
  base: '/project_name/', // 填写你的项目子目录名称
  routes: [
    // 你的路由规则...
  ]
})

就算是hash模式,配置base也能让路由路径更规范,建议加上。

3. 给WAMP配置URL重写(针对history模式)

用history模式时,直接访问子路由(比如localhost/project_name/about)会触发Apache的404错误——因为服务器找不到这个物理文件,得让所有请求都转发到index.html。

在你的WAMP项目根目录(www/project_name)创建一个.htaccess文件,写入以下内容:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /project_name/
  RewriteRule ^index\.html$ - [L]
  # 如果请求的不是真实文件/目录,就转发到index.html
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /project_name/index.html [L]
</IfModule>

还要确保WAMP的Apache开启了rewrite模块:打开WAMP管理器,依次点击Apache -> Apache Modules -> rewrite_module,勾选后重启Apache服务。

4. 重新部署验证

  • 重新执行npm run build构建项目
  • 把dist文件夹和根目录的index.html一起复制到WAMP的www/project_name目录下(确保index.html在project_name根目录,dist和它同级)
  • 访问localhost/project_name试试,页面和路由应该都能正常工作了!

额外排查点

如果还是有问题,打开浏览器F12查看:

  • Network标签:检查build.js等资源的请求路径是否正确,出现404就是publicPath配置有误
  • Console标签:查看是否有组件加载失败、路由配置错误等报错信息

内容的提问来源于stack exchange,提问作者Sandip Nag

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:13:24