项目使用的是vue2,脚手架vue-cli 4。

需求:之前项目路由使用的是hash,现在要求调整为history模式,但是整个过程非常坎坷,遇到了页面空白问题。现在就具体讲一下这个问题。

首先,直接讲路由模式由hash改为了history。

在vue.config.js中的配置

然后直接进行打包。

nginx的配置:

此时,启动nginx,访问项目http://localhost:8000/。因为我在项目的路由中配置了重定向,所以重定向到了jTlist页面。

此时,又来了一个新的需求!需有增加一个路由前缀,不能够直接访问/。

于是,我在增加了如下路由配置:

其他位置及nginx未做改动。

重新打包。

然后访问http://localhost:8000/aichat,成功访问,并成功重定向到/jTlist。

此时,问题来了!!点击刷新。

页面空白,控制台出现了两个错误。

点开错误信息,看了一下,提示We're sorry but xx doesn't work properly without JavaScript enabled. Please enable it to continue.

个人理解的意思是好像什么js未加载进来。于是,我点开Network,看一下对js文件的请求是否有问题。

找到了问题所在,

它本应访问的路径是http://localhost:8000/aichat/static/js/chunk-vendors.21d24282.js,结果访问了http://localhost:8000/aichat/aichat/static/js/chunk-vendors.21d24282.js。

该问题困扰了很长时间,结果看到了一位大佬的文章。

参考文章:https://blog.csdn.net/weixin_42644340/article/details/119654050#:~:text=不带"#"既是his

在vue.config.js中进行修改:

修改后重新打包。

成功访问,刷新后页面正常,问题成功解决。

注意:js找不到,还可能存在的问题是,入口文件index.html中通过script引入的文件,使用相对路径或其他,可能导致加载不到。

有任何问题,欢迎来问,一起探讨~~

vue2打包部署到nginx,解决路由history模式下页面空白问题的更多相关文章

  1. 新来的前端小姐姐问:Vue路由history模式刷新页面出现404问题

    摘要:vue-router 默认 hash 模式 -- 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载. 本文分享自华为云社区<学习Vue Rou ...

  2. vue路由history模式下打包node服务器配置

    vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载. 如果不想要很丑的 hash,我们可以用路由的 his ...

  3. vue路由history模式刷新页面出现404问题

    vue hash模式下,URL中存在'#',用'history'模式就能解决这个问题.但是history模式会出现刷新页面后,页面出现404.解决的办法是用nginx配置一下.在nginx的配置文件中 ...

  4. vue history模式下出现空白页情况

    问题描述:   vue搭建的项目,路由一直用的hash模式,所以url中都会带有一个“#”号.现在想要去掉“#”,于是使用history模式 { mode: 'history' },代码如下: imp ...

  5. Vue路由history模式踩坑记录:nginx配置解决404问题

    问题背景: vue-router 默认是hash模式,使用url的hash来模拟一个完整的url,当url改变的时候,页面不会重新加载.但是如果我们不想hash这种以#号结尾的路径时候的话,我们可以使 ...

  6. K8s nginx-ingress 如何配置二级目录转发远程静态服务器基于Vue路由history模式打包的应用程序

    背景 首先这标题有点绕,我先解释下: 首先我们有静态服务器,上面某个目录有Vue路由history模式打包的应用程序(也就是build后的产物): 但是静态服务器一般不做对外域名用的,我们需要在k8s ...

  7. vue2 打包部署(vue-cli )

    1.一般打包 :直接 npm run build.(webpack的文件,根据不同的命令,执行不同的代码的) 注:这种打包的静态文件,只能放在web服务器中的根目录下才能运行. 2.在服务器中 非根目 ...

  8. 解决vue-router嵌套路由(子路由)在history模式下刷新无法渲染页面的问题

    一. 异常描述: 本来使用的是vue-router的hash模式,但是hash模式下url需要带“#”符号,不仅看起来不舒服,而且有些场景下是会破坏路由中的"#"(微信分享页面就会 ...

  9. vite2.9 + vue3.2 打包部署到nginx上刷新页面404问题

    vite2.9 + vue3.2 打包部署到nginx上刷新页面404问题 在本地运行没问题,部署到服务器上,能正常访问,但是刷新之后页面404 原有的Nginx配置为: server { liste ...

  10. react history模式下的白屏问题

    近期,再用react的时候,由于不想用丑陋的hash,便将路由模式切换成history了,结果带来了一些问题,比如刷新白屏,还有图片加载不出来,这里我们说一下解决方案. 原因 首先,我们说一下造成这一 ...

随机推荐

  1. Mac idea 打不开

    从官网上刚下载的idea,安装完成之后,双击打开,只见一闪而过,软件没有打开. 打开 访达->应用程序->IntelliJ IDEA ->显示包内容 :   image.png 显示 ...

  2. Qt/C++地图导航app/支持qml/手机运行/输入起点终点规划路径/模拟轨迹移动

    一.前言说明 搞Qt地图开发这块,随着研究的深入,用户的需求变化,最近又需要在手机上运行,由于本地图组件依赖浏览器控件,而手机安卓上的Qt并没有带qwebengine控件,怎么办呢,不断的努力验证下, ...

  3. 是时候弃用ibSass和node-sass而采用Dart Sass了!

    背景说明 此次改动是在 Sass 核心团队进行了大量讨论之后,得出的结论,现在是时候正式宣布弃用 LibSass 和基于它构建的包(包括 Node Sass).多年来,LibSass 显然没有足够的工 ...

  4. JS端实现图片、视频时直接下载而不是打开预览

    项目中的附件列表,通常情况都需要提供下载.删除的功能,功能本身没有什么要说的,都是基本功能,使用浏览器的的下载功能,也都是用window.open(url),或者window.location.hre ...

  5. vue3.0实现炫酷的随机验证码功能

    先上图 接下来楼一眼实现代码 这里说明一下,我用到了vue3.0,vant3.0以及阿里图标,vant 很人性化针对vue3.0新出了个vant3.0版本,阿里则是适配vue3.0的.我们将verif ...

  6. Java实现任务管理器性能网络监控数据

    在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率.内存占用.磁盘I/O以及网络流量等.对于开发者和系统管理员来说,了解这些性能数据有助于优化应用程序和 ...

  7. 《C++并发编程实战》读书笔记(1):线程管控

    1.线程的基本管控 包含头文件<thread>后,通过构建std::thread对象启动线程,任何可调用类型都适用于std::thread. void do_some_work(); st ...

  8. ASP.NET Core 中使用 Redis 实现分布式缓存:Docker、IDistributedCache、StackExchangeRedis

    安装和配置docker (略)........... ASP.NET Core 使用分布式缓存 ASP.NET Core 中,支持使用多种数据库进行缓存,ASP.NET Core 提供了统一的接口给开 ...

  9. 第十三章 HashMap&HashSet源码解析

    HashMap源码解析 5.1.对于HashMap需要掌握以下几点 Map的创建:HashMap() 往Map中添加键值对:即put(Object key, Object value)方法 获取Map ...

  10. w3cschool-OpenResty 最佳实践Library

    https://www.w3cschool.cn/openresty1/ OpenResty LRR 访问有授权验证的 Redis 2.不重启Redis设置密码: 在配置文件中配置requirepas ...