VUE项目打包后运行页面一片白问题

VUE项目打包后运行页面一片白问题

1、说明

我们用VUE搭建一个脚手架后,在IDEA等工具中开发时,启动都没有什么问题,但是项目开发完成之后,可能需要部署上线,所以需要进行打包操作了,一般都是用下面命令进行打包:

npm run build

打包过程一般没有什么问题,然后就会在工程目录下生成一个【dist]文件夹,里面就是我们打包好的文件,把这些文件部署到Nginx中或者Tomcat中就可以了

2、问题说明

那么我碰到的问题是,Nginx运行之后,访问前端项目时,浏览器中一片空白,没有报任何错误

开始我以为是Nginx的问题,排查了很久,发现不是Nginx的问题,是我打包的问题

3、解决

这是因为在打包的时候,没有修改路径,build默认打包路径是根路径,所以需要修改下面三个文件:

3.1、index.js

config文件下的index.js,按照下图说明进行修改即可:

在这里插入图片描述

3.2、utils.js

build文件下的utils.js,按照下图说明进行修改即可:

在这里插入图片描述

3.3、webpack.prod.conf.js

build文件下的webpack.prod.conf.js,按照下图说明进行修改即可:

在这里插入图片描述
以上三个文件修改完成之后,再重新打包就可以了,部署启动后,登录首页就可以正常访问了

4、总结

我本地的前端VUE项目是这样操作一下就可以正常部署访问了,但可能大家环境各不一样,说不定这样设置后还是不行也有可能,所以我这里只是记录一下我的处理方式,仅供大家参考一下,祝君好运!

### Vue 项目打包部署后屏的原因分析与解决方案 Vue 项目问题通常由多种原因引起,以下是常见的几种可能性及其对应的解决办法: #### 1. **路径配置错误** 当 Vue 应用被打包并部署到服务器,如果 `publicPath` 配置不正确,可能会导致静态资源无法正常加载,从而引发屏现象。 - 如果应用部署在根目录下,则可以在 `vue.config.js` 中设置 `publicPath` 为 `'/'`[^3]。 - 若部署在子目录中(例如 `/my-vue-app/`),则应将 `publicPath` 设置为对应路径,如 `'/my-vue-app/'`。 ```javascript module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/my-vue-app/' : '/' }; ``` #### 2. **HTML 文件缓存** 浏览器可能对旧版本的 HTML 文件进行了缓存,在某些情况下会忽略新的 JavaScript 或 CSS 资源文件的变化,进而造成屏。可以通过修改服务端响应头来控制缓存策略[^2]。 对于未使用 Nginx 的场景,可以尝试以下方式: - 修改 HTML 文件名中的哈希值以强制刷新缓存。 - 使用 `<meta>` 标签禁用页面缓存,例如: ```html <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Expires" content="0"> ``` #### 3. **JavaScript 错误** 运行 JavaScript 报错也可能导致屏。这种问题通常是由于依赖库缺失、语法错误或者环境兼容性引起的。建议开启生产模式下的错误提示功能以便定位具体问题所在。 - 可以通过查看浏览器开发者工具中的 Console 和 Network 板块获取更多信息。 - 确保所有第三方插件均已正确安装且版本匹配。 #### 4. **跨域请求失败** 如果前端需要调用后端接口而发生跨域问题,并且未能妥善处理 CORS 头部信息的话,也有可能触发异常而导致界面卡死于初始状态即所谓的“屏”。因此需确认 API 地址是否可达以及相应的安全机制设定得当与否[^1]。 --- ### 总结代码片段示例 下面提供一段简单的脚本用于调试阶段快速验证是否存在基础性的 JS 执行障碍: ```javascript // main.js or app entry point file window.onerror = function (msg, url, lineNo, columnNo, error) { console.error(`Error Message: ${msg}`); alert('An unexpected error occurred while loading the application.'); }; try { new Vue({ render: h => h(App), }).$mount('#app'); } catch (e) { console.error(e); } ``` 此部分逻辑可以帮助捕获全局范围内的未被捕获异常事件并向终端用户提供友好的反馈消息而不是单纯呈现一片空白区域给用户看到。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小学生波波

感谢您的厚爱与支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值