浅谈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 相关文章推荐
在JavaScript中typeof的用途介绍
Apr 11 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
Jan 13 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
Oct 17 Javascript
js面向对象之静态方法和静态属性实例分析
Jan 10 Javascript
JavaScript简单表格编辑功能实现方法
Apr 16 Javascript
javascript事件委托的方式绑定详解
Jun 10 Javascript
jquery采用oop模式class类的使用示例
Jan 22 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
Jan 28 Javascript
vue.js从安装到搭建过程详解
Mar 17 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
Apr 19 Javascript
最简单的vue消息提示全局组件的方法
Jun 16 Javascript
jQuery实现开关灯效果
Aug 02 jQuery
详解关于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
如何使用PHP获取指定日期所在月的开始日期与结束日期
2013/08/01 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
BOOM vs RR BO3 第二场2.13
2021/03/10 DOTA
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
JS中数组重排序方法
2016/11/11 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
详解vue axios中文文档
2017/09/12 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
2018/10/09 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
python解析多层json操作示例
2019/12/30 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
2020/02/13 Python
用python实现学生管理系统
2020/07/24 Python
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
欧洲最大的预定车位市场:JustPark
2020/01/06 全球购物
中软Java笔试题
2012/11/11 面试题
商得四方公司面试题(gid+)
2014/04/30 面试题
Linux操作面试题
2012/05/16 面试题
人事助理自荐信
2014/02/02 职场文书
十八大标语口号
2014/10/09 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
格列佛游记读书笔记
2015/06/30 职场文书
初一年级组工作总结
2015/08/12 职场文书
python基于turtle绘制几何图形
2021/06/15 Python
一文搞懂python异常处理、模块与包
2021/06/26 Python
正则表达式拆分url实例代码
2022/02/24 Java/Android