前端项目上线的几种方式

date
Oct 19, 2024
AI 摘要
前端项目上线可通过打包、部署本地服务器、使用nginx等方式实现,需解决页面刷新404和请求无法发送的问题,建议使用hash模式或配置服务器返回index.html来处理路由问题,并通过http-proxy-middleware设置代理。云服务器部署流程与本地类似。
slug
front-end-project-launched
status
Published
tags
front-end
summary
前端项目上线可通过打包、部署本地服务器、使用nginx等方式实现,需解决页面刷新404和请求无法发送的问题,建议使用hash模式或配置服务器返回index.html来处理路由问题,并通过http-proxy-middleware设置代理。云服务器部署流程与本地类似。
type
Post

1、项目打包

  • 我们开发用的脚手架其实就是一个微型服务器,用于:支撑开发环境、运行代理服务器等。
  • 打包完的文件中不存在:.vue、.jsx、.less 等文件,而是:html、css、js等。
  • 打包后的文件,不再借助脚手架运行,而是需要部署到服务器上运行。
  • 打包前,请务必梳理好前端项目的ajax封装(请求前缀、代理规则等)。

2、本地服务器部署

2.1、具体操作步骤#

  • 第一步:准备一个本地的服务器
  • 第二步:进行前端项目打包 具体的打包命令,可以参考package.json中的scripts字段配置。
    • notion image
  • 第三步:将打包结果交给服务器
  • 第四步:测试访问前端项目

2.2、解决刷新 404 问题#

问题分析:前端项目的路由,通常分为两种工作模式,分别为:
  1. hash模式
  1. history模式
解决方案一:将前端路由器工作模式改为 hash 模式 —— 不太推荐。
解决方案二:让服务器在收到未配置的GET路由时,都返回index.html即可。 方案二最终其实是把 url 中的 path,交给了前端路由去处理,具体配置如下:
也可以借助connect-history-api-fallback中间件完成配置
使用connect-history-api-fallback可以让配置更灵活,比如/login临时不需要作为前端路由处理,就可以按照如下方式配置

2.3、请求无法发送问题#

问题分析:脱离脚手架后,就没有了代理服务器,无法转发请求到【提供数据】的服务器。
如何解决?—— 在 Node 服务器中借助http-proxy-middleware中间件配置代理,具体配置如下:

3、nginx 服务器部署

3.1、nginx 简介#

Nginx(发音为“engine-x”)是一款高性能的 HTTP 服务器和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。Nginx 最初由 Igor Sysoev 编写,于 2004 年发布。它以其高性能、高稳定性、丰富的功能集和低系统资源消耗而闻名,主要功能有:
  1. 反向代理
  1. 负载均衡
  1. 静态内容服务
  1. HTTP/2 支持
  1. SSL/TLS 支持
  1. 高速缓存

3.2、nginx 配置代理练习#

直接向其发送 Ajax 请求会有跨域问题,接下来我们借助nginx解决跨域问题
  • 配置方式一:不过滤前缀
以解决今日头条跨域为例,不干/hot-event掉前缀配置如下
前端写法
  • 配置方式二:过滤前缀 解决今日头条跨域,不干/hot-event掉前缀,nginx配置(8099 端口)
前端写法
备注:使用下面配置删除上游服务器的指定响应头。

3.3、nginx 部署前端项目#

整体思路:让nginx充当两个角色,既是 静态内容服务器,又是代理服务器。
  1. 修改nginx配置如下,注意nginx的根目录最好不是 C 盘
  1. 修改前端项目,让所有请求都转发给 /dev,随后重新打包
  1. 随后直接访问nginx服务器即可,例如 nginx如果运行在8099端口,则访问: http://localhost:8099
  1. 随后会遇到刷新404问题,追加nginx配置来解决

4、云服务器部署

我们可以在云服务器上借助nginx完成部署,大致流程与本地nginx部署一致
  1. 关于购买云服务器,可选择:阿里云、腾讯云等。
  1. 关于操作系统,看个人习惯,Ubuntu、CentOs、RedHat、都不错。
  1. 购买完成后记得重置密码
  1. linux 远程操作软件:Xshell、Xftp
  1. 具体配置如下:
  • 给服务器安装nginx
  • 将打包后的前端资源放在:/var/sph文件夹中。
  • 使用Xftp配置服务器的 nginx,修改文件:/etc/nginx/nginx.config。

© CodeXun 2025