浅谈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 相关文章推荐
IE与firefox之jquery用法区别
Oct 03 Javascript
jQuery学习笔记之jQuery的动画
Dec 22 Javascript
jquery中通过父级查找进行定位示例
Jun 28 Javascript
使用Plupload实现直接上传附件至七牛云存储
Dec 26 Javascript
JavaScript中getUTCSeconds()方法的使用详解
Jun 11 Javascript
ECMAScript6新增值比较函数Object.is
Jun 12 Javascript
举例讲解jQuery中可见性过滤选择器的使用
Apr 18 Javascript
第一次接触神奇的Bootstrap菜单和导航
Aug 01 Javascript
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
Angular4 ElementRef的应用
Feb 26 Javascript
详解处理bootstrap4不支持远程静态框问题
Jul 20 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
基于mysql的bbs设计(二)
2006/10/09 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
jquery.post用法之type设置问题
2014/02/24 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
2020/08/06 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
Python3安装Scrapy的方法步骤
2017/11/23 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
Django用户认证系统 Web请求中的认证解析
2019/08/02 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
pytorch数据预处理错误的解决
2020/02/20 Python
浅谈Python协程
2020/06/17 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
介绍一下RMI的基本概念
2016/12/17 面试题
《从现在开始》教学反思
2014/04/15 职场文书
表彰大会策划方案
2014/05/13 职场文书
文明班集体申报材料
2014/05/23 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
教代会闭幕词
2015/01/28 职场文书
瘦西湖导游词
2015/02/03 职场文书
志愿者个人总结
2015/03/03 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
详解如何用Python实现感知器算法
2021/06/18 Python