浅谈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 相关文章推荐
jquery 简单导航实现代码
Sep 11 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
Mar 07 Javascript
jQuery 打造动态下滑菜单实现说明
Apr 15 Javascript
JQUERY获取form表单值的代码
Jul 17 Javascript
jQuery下通过$.browser来判断浏览器.
Apr 05 Javascript
JavaScript常用对象的方法和属性小结
Jan 24 Javascript
点击进行复制的JS代码实例
Aug 23 Javascript
原生js和jquery中有关透明度设置的相关问题
Jan 08 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
Jun 24 Javascript
layui lay-verify form表单自定义验证规则详解
Sep 18 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
Dec 04 Javascript
vue-cli3自动消除console.log()的调试信息方式
Oct 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
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
javascript 单选框,多选框美化代码
2008/08/01 Javascript
Jquery动态替换div内容及动态展示的方法
2015/01/23 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
JavaScript中函数(Function)的apply与call理解
2015/07/08 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
vue 自定义提示框(Toast)组件的实现代码
2018/08/17 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
vue router 跳转时打开新页面的示例方法
2019/07/28 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
nodejs实现的http、https 请求封装操作示例
2020/02/06 NodeJs
python实现根据月份和日期得到星座的方法
2015/03/27 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
浅析Python函数式编程
2018/10/06 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
python 实现字符串下标的输出功能
2020/02/13 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
详解Python 中的容器 collections
2020/08/17 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
英国日常交易网站:Wowcher
2018/09/04 全球购物
青蓝工程实施方案
2014/03/27 职场文书
《特殊的葬礼》教学反思
2014/04/27 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
2015年招聘工作总结
2014/12/12 职场文书
经理岗位职责
2015/02/02 职场文书
幼儿园教师读书笔记
2015/06/29 职场文书