浅谈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 相关文章推荐
图片完美缩放
Sep 07 Javascript
jquer之ajaxQueue简单实现代码
Sep 15 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
Jun 09 Javascript
批量修改标签css样式以input标签为例
Jul 31 Javascript
Bootstrap模态框禁用空白处点击关闭
Oct 20 Javascript
基于javascript实现最简单选项卡切换
Feb 01 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
Feb 14 Javascript
Vue.js实现的计算器功能完整示例
Jul 11 Javascript
JS实现带阴历的日历功能详解
Jan 24 Javascript
详解js获取video任意时间的画面截图
Apr 17 Javascript
在Express中提供静态文件的实现方法
Oct 17 Javascript
cypress测试本地web应用
Jun 01 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
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
PHP实现简易计算器功能
2020/08/28 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
JQuery中使用ajax传输超大数据的解决方法
2014/07/14 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
js实现导航跟随效果
2018/11/17 Javascript
python中的插值 scipy-interp的实现代码
2018/07/23 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
python带参数打包exe及调用方式
2019/12/21 Python
Python使用多进程运行含有任意个参数的函数
2020/05/02 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
Hunkemöller西班牙:欧洲最大的内衣连锁店
2018/08/15 全球购物
保卫钓鱼岛口号
2014/06/20 职场文书
安全目标责任书
2014/07/22 职场文书
银行授权委托书样本
2014/10/13 职场文书
中学生检讨书1000字
2014/10/28 职场文书
如何用python反转图片,视频
2021/04/24 Python
详解Oracle块修改跟踪功能
2021/11/07 Oracle
redis lua限流算法实现示例
2022/07/15 Redis