浅谈vue项目4rs vue-router上线后history模式遇到的坑


Posted in Javascript onSeptember 27, 2018

此次项目开发完后准备打包,因为hash模式的路径带#看着实在是有点丑,所以采用history模式。因为本次项目属于以前网站重构,但是seo问题,所以需要以前的一些地址路径写,所以vue-router的路径全部重改了。打包后查了网上一大堆,都说要把config里的index.js 里的build里的

assetsPublicPath: '/'改成‘./',打包上线发现在hash模式下是没问题的,

但一旦改成history模式,有些动态js文件的路径都是错的。无奈之下死马当活马医,把‘./'改回了‘/'在history模式

下再次打包上线,发现点击跳转页面都是正常的,有些小激动。但是history模式的通病就是不能刷新,

因为原来跳转时其实不是通过请求服务器的,而是通过js操作history的API改变地址完成的。

当你刷新了之后浏览器就耿直的去请求服务器了,然而服务器没有这个路由,于是就404了。

解决方法1:可以做个代理,让所有访问服务器的地址都返回同一个入口文件。(推荐使用)

解决方法2:采用静态文件的形式让每个目录都存在就不会报错了

我们服务器是采用nginx,我不会,没弄,就自己用了nodejs和express搭建了个简单服务器,并采用了官方推荐的中间件

connect-history-api-fallback

使用方法:

在服务器app.js文件里引入

var history = require('connect-history-api-fallback');
然后在app绑定路由之前绑定中间件,
app.use(history({ 
rewrites: [ 
{ from: /^\/wap\/.*$/, to: '/index.html' }//这个是正确方式 
]}));

我一开始

app.use(history({
rewrites: [
{ from: /^\/wap\/.*$/, to: '/' }
]
}));

这样的,发现刷新是正常的,但是路径后面总是多了个"/",看着很是奇怪,就试着改成当前下的html文件,发现真的可以。从此大功告成。

以上这篇浅谈vue项目4rs vue-router上线后history模式遇到的坑就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
Jun 25 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
Apr 24 Javascript
jquery 提示信息显示后自动消失的具体实现
Dec 18 Javascript
jquery实现鼠标滑过小图时显示大图的方法
Jan 14 Javascript
jquery+html5制作超酷的圆盘时钟表
Apr 14 Javascript
AngularJS基础 ng-mouseover 指令简单示例
Aug 02 Javascript
js实现常用排序算法
Aug 09 Javascript
第一次接触神奇的Bootstrap导航条
Aug 09 Javascript
js微信支付实现代码
Dec 22 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
Mar 15 Javascript
详解vantUI框架在vue项目中的应用踩坑
Dec 06 Javascript
微信小程序抽奖组件的使用步骤
Jan 11 Javascript
详解关于vue2.0工程发布上线操作步骤
Sep 27 #Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
Sep 27 #Javascript
Vue中的v-for指令不起效果的解决方法
Sep 27 #Javascript
在vue中使用v-bind:class的选项卡方法
Sep 27 #Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
Sep 27 #Javascript
详解如何在vue项目中使用lodop打印插件
Sep 27 #Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
Sep 27 #Javascript
You might like
第十一节--重载
2006/11/16 PHP
PHP中的extract的作用分析
2008/04/09 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
PHP反射原理与用法深入分析
2019/09/28 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
CSS和Javascript简单复习资料
2010/06/29 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
2016/11/03 Javascript
详解js获取video任意时间的画面截图
2019/04/17 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
[01:31]完美与DOTA2历程
2014/07/31 DOTA
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
Python3匿名函数用法示例
2018/07/25 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
JBL澳大利亚官方商店:扬声器、耳机和音响系统
2018/05/24 全球购物
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
进程的查看和调度分别使用什么命令
2015/03/25 面试题
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
汇源肾宝广告词
2014/03/20 职场文书
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
中学生运动会口号
2014/06/07 职场文书
音乐研修感悟
2015/11/18 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS