nuxt,从开发到线上部署
起因:
前段时间,同组小伙伴使用vue做了一个小后台,使一位后端沉寂多年得求道之心又躁动了起来。。。然后,当我和这个躁动起来得后端要合作重构一个网站得时候,后端小哥哥说,就知道套页面,套页面,不用新技术,那一脸得恨铁不成钢 我至今想起来犹觉得记忆犹新,然后就有了后面得踩坑之路。
关于nuxt -- nuxt是一套基于vue,整合了vue全家桶得框架,为什么要选他呢,主要是因为可以解决seo问题。
现在想从头开始回顾一下自己遇到得坑:
首先遇到得一个比较严重得问题是,微信相关得业务,而整个项目就用到了两个,一个是微信登陆,另外一个是微信分享。
解决方案
就是自己用express写了个回调页,百度一下node微信登陆,基本套路搞清楚之后,就是在最后拿到unionid openid之后返给后端,生成token,再将token写进cookie里,重定向到发生跳转时得那个页。至于微信分享,也是写了个接口,唯一自己做了点额外得工作,也必须做得就是缓存了一下accesstoken和jsticket。
然后是关于一个vue中使用swiper小插件得一个坑,有个页面是做成tab切换了,而后下边tab得内容需要做成联动得,这就需要我在swiper动画结束得回调里取得当前得activeIndex
解决方案
直接贴代码
swiperOption: {
on: {
slideChange:() => {
if( this.mySwiper )
this.curActiveItem = this.mySwiper.activeIndex;
}
}
},
这个坑得主要来源是swiper回调得时候是没有参数得回调,本来会以为将当前得activeIndex直接传到回调里,可是这个回调时真的没有参数,后来只能通过这种方式比较曲折得拿到index,进而使上边得tab发生联动效果。
活久见: fixed 定位得参考目标不是视口
解决方案
这个也是在搞这个swiper得时候出现得,后来发现了问题得来源:
当元素祖先的 transform 属性非 none 时,容器由视口改为该祖先。
然后解决方案就是不在具有transform属性得元素里边使用fixed定位呗。但是在多组建嵌套的时候,由于不注意更容易出现这个问题。
项目部署,自己写的接口404了
解决方案
既然已经自己用express重写server了,就需要把server也和打过包的文件一起上传到服务器,然后启动命令start变成 cross env 参数 server/index.js 。这个坑是最可怕的,官方文档在这一步上一笔带过,其他的博客也没提到过这个,为了这个同组的小伙伴都愁的不要不要的了。
而后其他的都是些小问题了,整个站说大不大,说小不小,总共花费了整整十天的时间,真的是从零到一的过程,此前我们公司从来没有干过这个。当初决定使用nuxt也是我向总监提的,自然,整个过程中就感受到很多无形的压力,睡眠质量都不好了。幸好,最后也算正常的上线了,网页比起以前也有了更好的用户体验,对于我们程序员来说也算提高了点工作效率,维护起来不变得比以前容易了。
最后附上项目地址:
nuxt,从开发到线上部署的更多相关文章
- Django线上部署代码修改失效问题
记一次django项目的线上部署维护问题,django+nginx 关于nginx反向代理服务器的介绍这里有一篇博客介绍的比较好:nginx的相关介绍 以及当一次客户端请求发出后,uwsig以及uWS ...
- Docker实战 | 第三篇:Docker安装Nginx,实现基于vue-element-admin框架构建的项目线上部署
一. 前言 在上一文中 点击跳转 通过IDEA集成Docker插件实现微服务的一键部署,但 youlai-mall 是前后端分离的项目,除了后端微服务的部署之外,当然还少不了前端工程的部署.所以本篇讲 ...
- Node+mongodb线上部署到阿里云
Node+mongodb线上部署到阿里云 部署使用的主要工具是pm2+nginx,使用码云的私有仓库,自动部署到服务器,私有仓库和服务器要事先设置好免密码登录.使用DNSPOD进行域名解析.事先准备好 ...
- 【Maven篇】---解决Maven线上部署java.lang.ClassNotFoundException和no main manifest attribute解决方法
一.前述 maven 线上部署的话会出现一些问题比如java.lang.ClassNotFoundException或者no main manifest attribute的话,是因为maven 配置 ...
- 关于docker线上部署时间问题
背景 公司线上部署采用docker swarm方式,这几天线上项目时间突然出了问题(ps:第一反应,我去,这也能出问题,代码里肯定藏毒了),线上时间总跟实际时间差八个小时.本着速战速决的原则,把所有时 ...
- FastAdmin 线上部署流程 (2018-05-03 更新)
FastAdmin 线上部署流程 首次部署 建立 git 环境. 建立 composer 环境. 建立 bower 环境. 将远程项目代码 git clone 到服务器上. 执行 composer i ...
- vue-router+webpack线上部署时单页项目路由,刷新页面出现404问题
使用vue项目,线上部署的时候,访问首页以及通过路由打开二级页面没有问题,但是一刷新就出现404现象 因为刷新页面时访问的资源在服务端找不到,因为vue-router设置的路由不是真实存在的路径. 解 ...
- Django线上部署教程:腾讯云+Ubuntu+Django+Uwsgi(转载)
网站名称: 向东的笔记本 本文链接: https://www.eastnotes.com/post/29 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议.转载请注明出处! ...
- Node线上部署管理器PM2
PM2是一个带有负载均衡功能的Node应用的进程管理器.PM2可以利用服务器上的所有CPU,并保证进程永远都活着,0秒的重载,部署管理多个Node项目.PM2是Node线上部署完美的管理工具. PM2 ...
- Joomla - 部署(线上部署)
一.线上部署 线上部署可以理解为把本地网站迁移到线上,使用 akeeba backup 进行备份和迁移即可 参考 Joomla - akeeba backup(joomla网站备份.迁移扩展)的第三. ...
随机推荐
- OkHttp实现延时重试
本文主要应用了OkHttp的Interceptor来实现自定义重试次数 虽然OkHttp自带retryOnConnectionFailure(true)方法可以实现重试,但是不支持自定义重试次数,所以 ...
- File and Code template
/** * @author muzhi.zhong * @author <a href="mailto:muzhi.z@xxx.cn">muzhi.z</a> ...
- Qt编写视频监控系统75-计算实时码率并显示
一.前言 做监控摄像头的实时视频显示,一般还会要求统计实时码率显示在通道画面上,一个是为了测试下整个软件的性能,同时也看下当前到底是主码流还是子码流,设备到底是不是真的按照设定的码流大小来传输视频数据 ...
- Qt交叉编译整理的几点说明
关于交叉编译,对于初学者来说是个极难跨过去的砍(一旦跨过去了,以后遇到需要交叉编译的时候都是顺水推舟.信手拈来.),因为需要搭建交叉编译环境,好在现在厂家提供的板子基本上都是测试好的环境,尤其是提供的 ...
- Qt开发经验小技巧196-200
关于Qt延时的几种方法. void QUIHelperCore::sleep(int msec) { if (msec <= 0) { return; } #if 1 //非阻塞方式延时,现在很 ...
- Qt 中实现系统主题感知
[写在前面] 在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观. Qt 作为一个跨平台的C++图形用户界面应用程序 ...
- vivo手机上的系统级消息推送平台的架构设计实践
本文由vivo互联网服务器团队李青鑫分享,有较多修订和改动. 1.引言 本文内容来自vivo互联网服务器团队李青鑫在"2021 vivo开发者大会"现场的演讲内容整理而成(现场演讲 ...
- IDEA集成Docker控制台日志乱码问题解决
IDEA工具栏 → HELP → Edit Custom VM Options... 文件尾部添加一行 -Dfile.encoding=utf-8 重启IDEA即可
- HTTP方法-GET对比POST
什么是 HTTP ? 超文本传输协议(HTTP)的设计目的是保证客户端与服务器之间的通信. HTTP 的工作方式是客户端与服务器之间的请求-应答协议. web 浏览器可能是客户端,而计算机上的网络应用 ...
- Mina源码-整体解读
阅读笔记(一)-整体解读 Apache MINA is a network application framework which helps users develop high performan ...