注意!不是静态资源路径的问题!
描述一下情况:
1.地址能打开,属于 history 模式,/login 之类的地址都能打开
2.资源加载成功,Vue 代码的 css 和 js 都正确,favicon 也拿到了
3.Vue 加载正确,App mounted 有 log 返回
4.Route 加载正确,APP mounted 有 $route 返回,里面地址信息正确
5.#app 元素加载正确
感觉是我业务代码的问题,
可是本地代码跑起来是正常的!
1.地址能打开,属于 history 模式,/login 之类的地址都能打开
2.资源加载成功,Vue 代码的 css 和 js 都正确,favicon 也拿到了
3.Vue 加载正确,App mounted 有 log 返回
4.Route 加载正确,APP mounted 有 $route 返回,里面地址信息正确
5.#app 元素加载正确
感觉是我业务代码的问题,
可是本地代码跑起来是正常的!
如果你在本地运行代码一切正常,但在打包上线后遇到了页面空白的问题,这通常是由几个常见原因造成的。这里有一些可能的原因和相应的解决方法:
.env.production
中设置了正确的环境变量。history
模式,确保服务器配置正确,能够处理所有的路由请求,并返回 index.html
。errorCaptured
钩子来捕获未捕获的错误。如果以上建议都无法解决问题,你可能需要更详细地检查你的代码和配置,或者考虑使用如 vue-cli-service serve --mode production
这样的命令在本地模拟生产环境,以便更好地调试问题。
按我的经验,这种情况一般是渲染的时候报错,但是错误被 Vue 捕获了,所以没吐出来。
可以试着在浏览器 DevTools 里把 Pause on caught error 里打开,再试试。
4 回答4.6k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
5 回答758 阅读
4 回答2.2k 阅读✓ 已解决
3 回答5k 阅读
2 回答2.6k 阅读✓ 已解决
破案了,就是地址不对
原本的线上地址是:ip:port/BASEURL/#/login
然后 ip:port 的部署整多了,
忘记了 ip:port/BASEURL 的地址是不识别的,
new Router({ base }) 这个添加一下就好,蛮低级的错误,引以为戒!