浅谈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截取字符串的Slice、Substring、Substr函数详解和比较
Mar 20 Javascript
jquery对table中各数据的增加、保存、删除操作示例
May 14 Javascript
js 中将多个逗号替换为一个逗号的代码
Jun 07 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
Dec 25 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
Sep 17 Javascript
微信小程序 flex实现导航实例详解
Apr 26 Javascript
微信小程序实现点击返回顶层的方法
Jul 12 Javascript
React教程之封装一个Portal可复用组件的方法
Jan 02 Javascript
JQuery通过后台获取数据遍历到前台的方法
Aug 13 jQuery
微信小程序自定义底部导航带跳转功能
Nov 27 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
Mar 21 Javascript
jquery插件开发模式实例详解
Jul 20 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 生成饼图 三维饼图
2009/09/28 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
基于Vue.js 2.0实现百度搜索框效果
2020/12/28 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
Vue自定义toast组件的实例代码
2018/08/15 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
pyv8学习python和javascript变量进行交互
2013/12/04 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
python监控进程脚本
2018/04/12 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
意大利网上药房:Farmacia 33
2020/01/27 全球购物
冰淇淋店的创业计划书
2014/02/07 职场文书
保护环境建议书100字
2014/05/13 职场文书
绿色小区申报材料
2014/08/22 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
计划生育汇报材料
2014/12/26 职场文书
公司开会通知
2015/04/20 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
redis实现的四种常见限流策略
2021/06/18 Redis