【多项目整合上线】遇到的部署问题2,首页启动慢

40 篇文章 2 订阅
8 篇文章 0 订阅
在整合多个项目上线过程中,遇到首页响应速度慢和Express框架下静态文件刷新后404的问题。通过将项目拆分为二级子域名,响应速度显著提升。同时,发现UI项目未使用Antd CSS,移除后加载时间进一步减少。针对404问题,通过前端更改BASEURL、后端处理请求路径以及设置监听为返回index.html,成功解决了路由刷新404的错误。
摘要由CSDN通过智能技术生成

致命的问题,响应速度慢

在这里插入图片描述
这打开也太慢了,六七秒才下完资源,要是面试官没耐心打开,我唯一的优势就凉了,所以要解决这个问题,因为这个就一个单页面应用,而且页面也不大,用不到什么懒加载这种(主要是太菜了,不太会,只能选自己目前能解决的方法来解决,但是我感觉这个思路和懒加载类似,也是在用的时候才去请求,而不是第一次打开就全部下载下来),我看这个js这么大,所以觉得可以用二级子域名,来分割各个项目,

哎结果还是分割了,有点违背我想整合成单页面应用的初衷。

试验了一下,分割了后台管理的另外两个项目,暂时用一个mixer的域名,可以发现响应速度明显变快
在这里插入图片描述

7s变到了2s,所以把几个项目全部分离,就可以光速打开了,毕竟里面都不大,而且只有一个是有后端的,其他的都是静态页面
现在是单页面,ui的官网,降到1.25s
在这里插入图片描述
发现我ui根本没用antd的css,我是用的我自己的ui啊,antd是其他项目用到的,然后再去掉css,直接又缩短一半
在这里插入图片描述

express框架下的静态文件,路由嵌套后一刷新就404

经过一晚上的排除和总结,分为3个问题,如下

  • 登录时的logo图片,请求地址为 http://localhost:5000/xxxx,但是对比成功的前几个站点,请求地址应该是 域名/xxxx,
  • 富文本上传图片的时候,也出现了上面的问题
  • 嵌套路由,在不刷新的情况下,点击是正常工作的,但是一刷新就404,原因是浏览器顺着url去找真实的物理路径,但这是单页面应用,仅仅只是注册的路由而已,所以找不到就报错了

解决办法:

  • 第一个,在前端把BASEURL改为 域名,而不是 localhost5000,其实也是因为之前配置的package.json中的homepage : ‘.’ ,这个原因,因为之前想部署静态,结果静态文件找不到路径,要把相对路径改成绝对路径,之后就没改回来;
  • 第二个,需要在后端把5000改成域名
  • 第三个需要在后端,修改监听,把监听都换成index.html下,然后就会自动匹配路由了
res.send({
        status: 0,
        data: {
          name: file.filename,
          // localhost:5000或许不行,在本地的时候可以,但是在线上可能不行
          // url: 'http://localhost:5000/upload/' + file.filename
          url: 'http://manage.voiceu.top/upload/' + file.filename
        }
      })
const path = require('path')
//配置任何请求都转到index.html,而index.html会根据React-Router规则去匹配任何一个route
app.get('*', function (request, response){
  response.sendFile(path.resolve(__dirname, 'public', 'index.html'))
})

搞定!

参考
参考1
参考2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值