一:概述

vue-router可以设置两种模式:hash和history

const router = new VueRouter({mode: "hash",// mode: "history",routes});

如果使用hash模式,一般无需特殊配置;

但如果要使用history模式,则前端和服务端要做一定的设置;

使用history模式通常本地调试没有什么问题,但是一旦发布到测试或生产环境,则会出现页面白屏或者刷新页面白屏的现象,这种问题的出现是因为前端和服务端没有做相应的配置。

二、实现history模式需要怎样配置

2.1、前端配置

首先要设置路由的mode和base两个值,如下:

const routes = [...]const router = new VueRouter({mode: "history",base: process.env.BASE_URL,  // 如果使用history模式,必须设置base参数routes
});export default router;

其次要设置vue.config.js里的publicPath,如下:

module.exports = {// publicPath默认值是'/',即你的应用是被部署在一个域名的根路径上// 设置为'./',可以避免打包后的静态页面空白// 当在非本地环境时,这里以项目test-daily为例,即打包后的h5项目部署服务器的test-daily目录下// 那么这里就要把publicPath设置为/test-daily/,表示所有的静态资源都在/test-daily/里// 打包部署后,会发现index.html引用的静态资源都添加了路径/test-daily/publicPath: process.env.NODE_ENV == 'development' ? './' : '/test-daily/',......}

如下图所示:

至此,前端的配置工作就结束了。

2.2、服务端配置(这里以nginx为例)

官网其实有介绍,只是不太详细,这里直接上代码,如下:

location /test-daily表示项目部署在了 /test-daily目录下,这里要跟vue.config.js里的publicpath的值保持一致。

之所以刷新页面白屏,其实是因为路由资源不存在,以本项目为例(home为首页路由的参数):

https://test.xxx.yy/test-daily/home

当访问上述路由时,其实根本就不存在相应的资源,当然会404了,为了避免这种情况的发生,可以让所有的路由都指向index.html就可以解决问题了

在nginx上进行设置: try_files $uri $uri/ /test-daily/index.html        即可。

至此,也就实现了所有的history模式的配置。

vue-router实现history模式配置相关推荐

  1. 解决vue router使用 history 模式刷新后404问题

    因为我们的应用是单页客户端应用,当使用 history 模式时,URL 就像正常的 url,可以直接访问http://www.xxx.com/user/id,但是因为vue-router设置的路径不是 ...

  2. vue router 原生html,Vue router 使用 History 模式导致页面请求 404

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

  3. 面试考问Vue Router 的路由模式,这个回答令我直接出局!

    HR力荐了一个工作 4 年,目前年薪 40W+ 的候选人. 看他简历,从 HTML,CSS,JavaScript ,Vue.js ,再到React 一个都不缺,跨平台PC.移动端.小程序也都接触过,像 ...

  4. 你真的理解 Vue Router 的路由模式吗?

    HR力荐了一个工作 4 年,目前年薪 40W+ 的候选人. 看他简历,从 HTML,CSS,JavaScript ,Vue.js ,再到React 一个都不缺,跨平台PC.移动端.小程序也都接触过,像 ...

  5. 面试考问Vue Router 的路由模式,这个回答令我直接出局~

    HR力荐了一个工作 4 年,目前年薪 40W+ 的候选人. 看他简历,从 HTML,CSS,JavaScript ,Vue.js ,再到React 一个都不缺,跨平台PC.移动端.小程序也都接触过,像 ...

  6. vue react 路由history模式刷新404问题解决方案

    vue react 路由history模式刷新404问题解决方案 参考文章: (1)vue react 路由history模式刷新404问题解决方案 (2)https://www.cnblogs.co ...

  7. vue router中hash模式和history模式的区别

    面试问答     hash 模式与 history 模式的区别,这个也是面试常问的问题,不要小看这道题其实问到这里的时候那个面试官应该是个大牛,开发经验丰富,这个题其实就是考验你的开发经验是否属实. ...

  8. 每天一点点之vue框架开发 - History 模式下线上路由报404错误

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

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

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

最新文章

  1. 值得推荐的C/C++框架和库 【强烈推荐】
  2. 云服务器 ECS快速入门:远程连接 ECS 实例
  3. mysql hang住_mysql 5.7不定期的hang住重启-问答-阿里云开发者社区-阿里云
  4. HTML5对音频的支持
  5. python三大神器===》装饰器
  6. 当AR落地B端行业应用,它的无限可能在哪?
  7. 类加载的双亲委派机制
  8. 2020年周记(2/50)
  9. QString与中文问题
  10. 7,复习,多对多表的三种创建,form组件,cookie,session
  11. 无惧上代信号差诟病?谷歌Pixel 7系列继续搭载三星基带芯片
  12. 使用phoneGap和Sencha Touch 2开发Android应用程序(四)
  13. HTML-input文本框添加提示文字,填写内容时消失
  14. 在CentOS6.9中搭建HBase
  15. 使用JavaScript调用手机平台上的原生API 1
  16. Java的结构之美【2】——销毁对象
  17. 注册使用GAC【转载】
  18. 【12】Kotlin函数泛型协程
  19. css从中间向两边动画,css动画效果:鼠标移上去底部线条从中间往两边延伸 - 子成君-分享出去,快乐加倍!-旧版已停更...
  20. 32.ES中什么是fuzzy(模糊)查询?如何进行fuzzy查询?java如何进行fuzzy查询?嘻哈的简写笔记——Elastic Search

热门文章

  1. 请记得,我不是个好人
  2. TLS/SSL 协议详解 (30) SSL中的RSA、DHE、ECDHE、ECDH流程与区别
  3. c语言输入字母输出数字,输入一字符串 把其中的字母和数字分开输出 用c语言编写...
  4. MySQL中,对结果或条件进行字符串拼接
  5. 理解DCT与DST【三】:离散正弦变换
  6. python opencv的函数cv2.LUT(src, lut, dst=None)的具体使用(LUT:查找表)
  7. 如何才能实现自己的梦想
  8. execve系统调用_execve系统调用分析
  9. 网站突然无法访问解决方案
  10. 1990-2019年地级市地方财政收支数据(全市)