浅谈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实现给图片加链接
Aug 15 Javascript
JSON 数据格式介绍
Jan 13 Javascript
JavaScript实现数字数组正序排列的方法
Apr 06 Javascript
Jquery代码实现图片轮播效果(一)
Aug 12 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
Sep 11 Javascript
全面了解javascript三元运算符
Jun 27 Javascript
关于jQuery库冲突的完美解决办法
May 20 jQuery
bootstrap3使用bootstrap datetimepicker日期插件
May 24 Javascript
AngularJs导出数据到Excel的示例代码
Aug 11 Javascript
JavaScript常见继承模式实例小结
Jan 11 Javascript
WebSocket的简单介绍及应用
May 23 Javascript
原生js实现下拉选项卡
Nov 27 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通用检测函数集合
2006/11/25 PHP
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
js预载入和JavaScript Image()对象使用介绍
2011/08/28 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
微信小程序文章详情功能完整实例
2020/06/03 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
Python splitlines使用技巧
2008/09/06 Python
Python线程创建和终止实例代码
2018/01/20 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
Python定义函数实现累计求和操作
2020/05/03 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
美国第一个网上卖鞋零售商:OnlineShoes.com
2017/09/24 全球购物
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
财务总监管理岗位职责
2014/03/08 职场文书
单位接收证明格式
2015/06/18 职场文书
道士塔读书笔记
2015/06/30 职场文书
运动会5000米加油稿
2015/07/21 职场文书
新闻通讯稿范文
2015/07/22 职场文书
小学同学聚会感言
2015/07/30 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
《所见》教学反思
2016/02/23 职场文书
MATLAB 如何求取离散点的曲率最大值
2021/04/16 Python