vue-router实现history模式配置
一:概述
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模式配置相关推荐
- 解决vue router使用 history 模式刷新后404问题
因为我们的应用是单页客户端应用,当使用 history 模式时,URL 就像正常的 url,可以直接访问http://www.xxx.com/user/id,但是因为vue-router设置的路径不是 ...
- vue router 原生html,Vue router 使用 History 模式导致页面请求 404
vue-router 默认 hash 模式 -- 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载. 如果不想要很丑的 hash,我们可以用路由的 his ...
- 面试考问Vue Router 的路由模式,这个回答令我直接出局!
HR力荐了一个工作 4 年,目前年薪 40W+ 的候选人. 看他简历,从 HTML,CSS,JavaScript ,Vue.js ,再到React 一个都不缺,跨平台PC.移动端.小程序也都接触过,像 ...
- 你真的理解 Vue Router 的路由模式吗?
HR力荐了一个工作 4 年,目前年薪 40W+ 的候选人. 看他简历,从 HTML,CSS,JavaScript ,Vue.js ,再到React 一个都不缺,跨平台PC.移动端.小程序也都接触过,像 ...
- 面试考问Vue Router 的路由模式,这个回答令我直接出局~
HR力荐了一个工作 4 年,目前年薪 40W+ 的候选人. 看他简历,从 HTML,CSS,JavaScript ,Vue.js ,再到React 一个都不缺,跨平台PC.移动端.小程序也都接触过,像 ...
- vue react 路由history模式刷新404问题解决方案
vue react 路由history模式刷新404问题解决方案 参考文章: (1)vue react 路由history模式刷新404问题解决方案 (2)https://www.cnblogs.co ...
- vue router中hash模式和history模式的区别
面试问答 hash 模式与 history 模式的区别,这个也是面试常问的问题,不要小看这道题其实问到这里的时候那个面试官应该是个大牛,开发经验丰富,这个题其实就是考验你的开发经验是否属实. ...
- 每天一点点之vue框架开发 - History 模式下线上路由报404错误
vue-router 默认 hash 模式 -- 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载. 如果不想要很丑的 hash,我们可以用路由的 his ...
- Vue路由history模式踩坑记录:nginx配置解决404问题
问题背景: vue-router 默认是hash模式,使用url的hash来模拟一个完整的url,当url改变的时候,页面不会重新加载.但是如果我们不想hash这种以#号结尾的路径时候的话,我们可以使 ...
最新文章
- 值得推荐的C/C++框架和库 【强烈推荐】
- 云服务器 ECS快速入门:远程连接 ECS 实例
- mysql hang住_mysql 5.7不定期的hang住重启-问答-阿里云开发者社区-阿里云
- HTML5对音频的支持
- python三大神器===》装饰器
- 当AR落地B端行业应用,它的无限可能在哪?
- 类加载的双亲委派机制
- 2020年周记(2/50)
- QString与中文问题
- 7,复习,多对多表的三种创建,form组件,cookie,session
- 无惧上代信号差诟病?谷歌Pixel 7系列继续搭载三星基带芯片
- 使用phoneGap和Sencha Touch 2开发Android应用程序(四)
- HTML-input文本框添加提示文字,填写内容时消失
- 在CentOS6.9中搭建HBase
- 使用JavaScript调用手机平台上的原生API 1
- Java的结构之美【2】——销毁对象
- 注册使用GAC【转载】
- 【12】Kotlin函数泛型协程
- css从中间向两边动画,css动画效果:鼠标移上去底部线条从中间往两边延伸 - 子成君-分享出去,快乐加倍!-旧版已停更...
- 32.ES中什么是fuzzy(模糊)查询?如何进行fuzzy查询?java如何进行fuzzy查询?嘻哈的简写笔记——Elastic Search
热门文章
- 请记得,我不是个好人
- TLS/SSL 协议详解 (30) SSL中的RSA、DHE、ECDHE、ECDH流程与区别
- c语言输入字母输出数字,输入一字符串 把其中的字母和数字分开输出 用c语言编写...
- MySQL中,对结果或条件进行字符串拼接
- 理解DCT与DST【三】:离散正弦变换
- python opencv的函数cv2.LUT(src, lut, dst=None)的具体使用(LUT:查找表)
- 如何才能实现自己的梦想
- execve系统调用_execve系统调用分析
- 网站突然无法访问解决方案
- 1990-2019年地级市地方财政收支数据(全市)