基于ZR.VUE 前端的改造,页面刷新报错
问题描述:
前后端分离开发,分开部署. 页面刷新 直接报404 错误的解决办法
提示: 先在 .env.development 中 配置 VUE_APP_BASE_API , 将 '/' 替换为 后端地址 'http://localhost:8888/'
如果是对应的发布的正式环境,也要修改 .env.production 的VUE_APP_BASE_API 配置.
并且在 后端 appsettings.json 的 corsUrls 节点中,配置 前端的 地址,比如 http://localhost:8887, http://localhost:* 等
解决办法1: 使用 vue history 模式(路由访问,地址栏中间 没有 #)
在 src/router/index.js 中 最末尾
增加和修改
//在 export const constantRoutes = = [{ }] 的后面
const originalPush = Router.prototype.push;
Router.prototype.push = function push(location, onResolve, onReject) {
if (onResolve || onReject)
return originalPush.call(this, location, onResolve, onReject);
return originalPush.call(this, location).catch((err) => err);
};
export default new Router({
base: process.env.VUE_APP_ROUTER_PREFIX,
mode: 'history', // 去掉url中的#
scrollBehavior: () => ({ y: 0, x: 0 }),
routes: constantRoutes
})
然后修改在 logOut的时候,退出的路由
,找到 调用 this.$store.dispatch('LogOut') 的地方
分别在 src\layout\components\Navbar.vue 和 src\utils\request.js
this.$store.dispatch('LogOut').then(() => {
const url = process.env.VUE_APP_ROUTER_PREFIX + 'index';
location.href = url
})
然后在 根目录下的 vue.config.js
// history模式下的url会请求到服务器端,但是服务器端并没有这一个资源文件,就会返回404,所以需要配置这一项
historyApiFallback: {
rewrites: [{
from: /.*/g,
to: '/index.html' //如果是其他地址,在这里修改
}]
},
解决办法2: 不使用history模式,改为使用hash模式 (地址栏中访问有#)
1.在 src/router/index.js 中 最末尾,修改
把 mode: 'history' 注释, (等价于 采用默认的 mode:hash 模式)
export default new Router({
base: process.env.VUE_APP_ROUTER_PREFIX,
//mode: 'history', // 去掉url中的#
//scrollBehavior: () => ({ y: 0, x: 0 }),
routes: constantRoutes
})
2.然后修改在 logOut的时候,退出的路由
,找到 调用 this.$store.dispatch('LogOut') 的地方
分别在 src\layout\components\Navbar.vue 和 src\utils\request.js
this.$store.dispatch('LogOut').then(() => {
const url = process.env.VUE_APP_ROUTER_PREFIX + '#/index';
location.href = url
})
以上两种解决方案,亲测有效.
基于ZR.VUE 前端的改造,页面刷新报错的更多相关文章
- Vue 部署IIS 单页面刷新报404问题
参考地址: https://blog.csdn.net/yinjing8435/article/details/71274416
- 【转】】Vue项目部署tomcat,刷新报错404解决办法
转自[https://blog.csdn.net/g631521612/article/details/82835518] 解决方式: - 在tocmat的webapps下的项目中创建WEB-INF文 ...
- vue 缓存的keepalive页面刷新数据
用到这个的业务场景是这样的: a页面点击新建列表按钮进入到新建的页面b,填写b页面并点击b页面确认添加按钮,把这些数据带到a页面,填充到列表(数组),可以添加多条, 点击这条的时候进入到编辑页面,确认 ...
- vue 在nginx下页面刷新出现404问题解决和在nginx下页面加载了js但是页面显示空白问题解决
一.vue 在nginx下页面刷新出现404 在网上翻遍了所有这样问题的解决办法,全都是一个解决办法也是正确的解决办法,(后来在vue官网上关于history方式出现404解决方法也是这样说的),只是 ...
- Vue学习笔记-vue-element-admin 按装报错再按装
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
- 全局解决Vue跳转相同路由导致报错的问题
大家使用Vue做开发的时候应该都遇到过这个问题,就是某个页面下调用this.$router.push(path),而path指向的页面和当前页面是同一页面时,就会发生报错,vue-router会提示你 ...
- 后台返回json字符串 页面js报错 Uncaught SyntaxError: Unexpected identifier
后台json字符串是 [{"name": "报销申请", "id": "start"}, {"name&quo ...
- 刚新建好的动态网站项目,创建jsp页面就报错
拿到刚刚可以运行的Eclipse,就马上想敲码了,但一创建项目之后再创建jsp页面就报错= =! 报错的内容大概为缺乏对应的jar包. 我们常用Tomcat为中间体,而他本身是带有开发jsp网站的对应 ...
- py+selenium 自动判断页面是否报错并显示在自动化测试报告【原创】
有需求就会去研究解决的路子. 现在需求就是,测试报告报错信息一堆,但却无法肉眼看出是什么问题,你只能知道定位不到元素或是超时,但你却不知道其实进入页面就报错了或是提交表单就报错了!也就是看到报错,需要 ...
- 刚新建好的动态网站项目,创建jsp页面就报错??
拿到刚刚可以运行的Eclipse,就马上想敲码了,但一创建项目之后再创建jsp页面就报错= =! 报错的内容大概为缺乏对应的jar包. 我们常用Tomcat为中间体,而他本身是带有开发jsp网站的对应 ...
随机推荐
- C#-4 方法
一 何为方法 方法是一块具有名称的代码,是类的函数成员. 方法主要分为方法头和方法体. void Method() { 语句1: 语句2: } 二 类型推断和var关键字 var sum = 15; ...
- PHP全栈开发(四): HTML 学习(1.基础标签+表格标签)
简单的学习一下HTML 学习HTML采用在www.runoob.com上学习的方法. 而且该网站还提供在线编辑器. 然后HTML编辑器使用Notepad++ 记得上Emmet的官网http://emm ...
- Pep9课下作业
(1)编写一个伪代码算法 Set sum to 0 Input num1 Read num1 Set sum to sum + num1 Input num2 Read num2 Set sum to ...
- HTTP缺点有哪些,如何解决
前言 大家好,我是蜗牛,在上一篇中,我们介绍了不同版本的HTTP区别和发展背景,这篇文章我们来聊聊HTTP的缺点,HTTP缺点大致总结有以下三点: 通信使用明文(不加密),内容可能会被窃听. 不验证通 ...
- 4.MongoDB系列之索引(一)
1. 执行计划查看 db.getCollection('users').find({'username': 'shenjian'}).explain('executionStats') 结果查看,先大 ...
- JS前端防止F12扒取源码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java编程基础——敬请期待!!!
变量 数据类型 条件判断 循环 函数 类 Java特性
- Golang 加密方法
如果想直接使用我下列的库 可以直接go get 我的github go get -u github.com/hybpjx/InverseAlgorithm md5 加密--不可逆 MD5信息摘要算法是 ...
- Optional用法与争议点
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 要说Java中什么异常最容易出现,我想NullPointerException一定当仁不让,为了解决这种null值 ...
- .NET性能优化-是时候换个序列化协议了
计算机单机性能一直受到摩尔定律的约束,随着移动互联网的兴趣,单机性能不足的瓶颈越来越明显,制约着整个行业的发展.不过我们虽然不能无止境的纵向扩容系统,但是我们可以分布式.横向的扩容系统,这听起来非常的 ...