首页 > 其他分享 >基于ZR.VUE 前端的改造,页面刷新报错

基于ZR.VUE 前端的改造,页面刷新报错

时间:2022-12-24 11:11:06浏览次数:45  
标签:src VUE url APP 报错 env ZR history

 

问题描述:

前后端分离开发,分开部署. 页面刷新 直接报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

module.exports ={ devServer: { host: '0.0.0.0', port: 8887, open:true, proxy:{ } disableHostCheck: true,     //增加如下代码
 // 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
 })

 

以上两种解决方案,亲测有效.

 

标签:src,VUE,url,APP,报错,env,ZR,history
From: https://www.cnblogs.com/mjxxsc/p/17002486.html

相关文章

  • eclipse中js报错
    eclipse中javascript报错问题处理:三个地方:<1>"eclipse设置":Java代码 window->preference->Validator->Errors/Warnings->EnableJavascriptSematicvalidation前面的钩子......
  • Vuex
    简介​  在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。......
  • Vue之key的原理
    面试题:react、vue中的key有什么作用?(key的内部原理)                        1.虚拟DOM中key的作用:      ......
  • Harbor main.py报错
    前戏preparebasedirissetto/apps/harborTraceback(mostrecentcalllast):File"/usr/src/app/main.py",line15,in<module>cli()File"/usr/lib/pytho......
  • Vue修饰符
    修饰符在程序世界里,修饰符是用于限定类型以及类型成员的声明的一种符号,在Vue中,修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多......
  • Vue开发环境中配置devServer
    简述在使用Axios时,在本地开发通常会出现跨域问题,解决方法也很简单。在开发环境下,可以通过配置Vue.config.js中的module.exports中devServer来解决。注:生产环境无效,没见d......
  • Vue 列表渲染之v-for指令
    v-for指令             1.用于展示列表数据            2.语法:v-for="(item,index)inxxx":key="yyy" index是......
  • Vue
            条件渲染              1.v-if                    写法:    ......
  • 安装node.js与webpack创建vue2项目
    本文为博主原创,转载请注明出处:1.安装node.js下载地址:http://nodejs.cn/download/(可查看历史版本)node.js中文网:http://nodejs.cn/api-v16/建议下......
  • VUE 前端文本输出为超文本
    VUE的前端文本输出为超文本。但是我们希望的是页面能够自动将超文本进行转换。 ​​​​ 问题和解决{{blogContent.blogContent}}这种输出方式,VUE模板是不会将内容以HT......