浅谈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读取中文COOKIE的解决办法
Feb 15 Javascript
js当一个变量为函数时 应该注意的一点细节小结
Dec 29 Javascript
鼠标移动到图片名上,显示图片的简单实例
Jul 14 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
Aug 28 Javascript
JavaScript设置首页和收藏页面的小例子
Nov 11 Javascript
不想让浏览器运行javascript脚本的方法
Nov 20 Javascript
学习JavaScript设计模式(封装)
Nov 26 Javascript
实例解析jQuery中proxy()函数的用法
May 24 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
Nov 20 Javascript
vue内置组件transition简单原理图文详解(小结)
Jul 12 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
Mar 11 Javascript
js实现拖拽与碰撞检测
Sep 18 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/12/06 PHP
php中如何防止表单的重复提交
2013/08/02 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
2016/11/22 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
javascript Excel操作知识点
2009/04/24 Javascript
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
wxpython学习笔记(推荐查看)
2014/06/09 Python
Python算法之栈(stack)的实现
2014/08/18 Python
Python实现的redis分布式锁功能示例
2018/05/29 Python
python实现简易动态时钟
2018/11/19 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
接口可以包含哪些成员
2012/09/30 面试题
大学校园毕业自我鉴定
2014/01/15 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
旅游投诉信范文
2015/07/02 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
Python标准库pathlib操作目录和文件
2021/11/20 Python