要将 uni-app 打包为 H5 并部署到 Nginx,同时配置请求代理(通常用于解决前端与后端接口请求的跨域问题),可以按照以下步骤进行操作:

1. 打包 uni-app 项目为 H5

  1. 安装依赖
    确保你已安装好 uni-app 开发环境(HBuilderX 或通过 Vue CLI 安装)。

  2. 打包项目
    在项目根目录下运行以下命令来打包为 H5:

    
    

    bash

    npm run build:h5

    或者,如果你使用 HBuilderX,可以通过图形界面点击“发行” -> “H5” 来打包。

  3. 查看打包结果
    打包完成后,生成的 H5 文件会存放在 dist/build/h5 目录下。

2. 配置 Nginx 部署

  1. 上传文件到服务器
    将 dist/build/h5 目录下的文件上传到 Nginx 服务器上的某个目录,例如:/var/www/html/uniapp/。

  2. 配置 Nginx 配置文件
    打开 Nginx 配置文件(通常是 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/default)。

    在 server 块中添加配置,指向你上传的文件目录,并配置代理请求。例如:

    
    
    server { listen 80; server_name your-domain.com; # 替换为你的域名 # 静态文件服务 location / { root /var/www/html/uniapp; # 上传文件的目录 index index.html; try_files $uri $uri/ /index.html; # 处理单页面应用的路由 } # API 请求代理 location /api/ { proxy_pass http://backend-server-ip-or-domain; # 替换为后端接口地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # 错误页面 error_page 404 /404.html; location = /40x.html { root /usr/share/nginx/html; } }
    • 静态文件配置:location / 配置用来指向 H5 文件的目录。
    • 请求代理配置:location /api/ 配置代理 /api/ 开头的请求到你的后端服务器地址(如 http://backend-server-ip-or-domain)。
      • 如果你的后端接口路径不是以 /api/ 开头,可以根据实际情况调整路径前缀。
      • proxy_pass 是将请求转发到后端接口。
      • proxy_set_header 设置请求头,以确保代理的请求可以正常工作。
  3. 重新加载 Nginx 配置
    修改完成后,重新加载 Nginx 配置来应用更改:

    
    

    bash

    sudo nginx -s reload
  4. 检查代理是否有效
    通过访问你的前端页面,检查是否能正常访问接口并获取数据。

3. 配置 uni-app 项目中的请求代理

在 uni-app 中,可以通过 vue.config.js 文件来配置请求代理,以便在开发环境下解决跨域问题。你可以按照以下步骤进行配置:

  1. 配置 vue.config.js 文件(仅在开发环境下需要)

    在 uni-app 项目根目录下,创建或修改 vue.config.js 文件,添加代理配置:

    
    
    module.exports = { devServer: { proxy: { '/api': { target: 'http://backend-server-ip-or-domain', // 后端接口的地址 changeOrigin: true, // 如果后端是跨域的,设置为 true pathRewrite: { '^/api': '' // 将请求的 /api 前缀去掉 } } } } };
    • target:指定代理目标地址,即后端接口地址。
    • changeOrigin:设置为 true 以改变请求头中的 origin,解决跨域问题。
    • pathRewrite:用来重写路径,去除 /api 前缀,确保后端正确处理请求。

4. 生产环境的代理设置

在生产环境中,代理的配置是通过 Nginx 来完成的,因此在 uni-app 项目中并不需要额外配置代理。代理功能已经通过 Nginx 实现。

5. 总结

  1. 打包:通过 npm run build:h5 打包项目。
  2. 上传文件:将打包后的文件上传到服务器。
  3. 配置 Nginx:在 Nginx 配置中设置静态文件路径并配置 API 请求代理。
  4. 开发环境代理:通过 vue.config.js 配置开发时的请求代理(解决跨域)。

这样,你的 uni-app H5 项目就能够部署到 Nginx,并且请求代理配置也已完成,前端和后端可以正常通信。

更多推荐