浅谈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 相关文章推荐
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
Mar 02 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
Jun 14 Javascript
jquery关于图形报表的运用实现代码
Jan 06 Javascript
JS+CSS实现六级网站导航主菜单效果
Sep 28 Javascript
深入浅析javascript立即执行函数
Oct 23 Javascript
微信小程序(三):网络请求
Jan 13 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
Mar 08 Javascript
vue中用动态组件实现选项卡切换效果
Mar 25 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
Mar 05 Javascript
如何从头实现一个node.js的koa框架
Jun 17 Javascript
在vue中利用v-html按分号将文本换行的例子
Nov 14 Javascript
js绘制一条直线并旋转45度
Aug 21 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
PHP+javascript模拟Matrix画面
2006/10/09 PHP
php下通过POST还是GET来传值
2008/06/05 PHP
php使用wordwrap格式化文本段落的方法
2015/03/17 PHP
php生成固定长度纯数字编码的方法
2015/07/09 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
用js做一个小游戏平台 (一)
2009/12/29 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
详解JS浏览器事件循环机制
2019/03/27 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
Sanic框架流式传输操作示例
2018/07/18 Python
详解Python3定时器任务代码
2019/09/23 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
美国最古老的精致书写工具制造商:A.T. Cross(高仕)
2018/01/30 全球购物
捷克家居装饰及图书音像购物网站:Velký košík
2018/04/16 全球购物
运动会稿件100字
2014/02/21 职场文书
高三高考决心书
2014/03/11 职场文书
素质教育标语
2014/06/27 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
2015年清剿火患专项行动工作总结
2015/07/27 职场文书
寒假致家长的一封信
2015/10/10 职场文书
小学副班长竞选稿
2015/11/21 职场文书
python基础之匿名函数详解
2021/04/21 Python