uni-app打包h5并部署到nginx 并且配置请求代理
要将 uni-app 打包为 H5 并部署到 Nginx,同时配置请求代理(通常用于解决前端与后端接口请求的跨域问题),可以按照以下步骤进行操作:
1. 打包 uni-app 项目为 H5
-
安装依赖
确保你已安装好uni-app开发环境(HBuilderX 或通过 Vue CLI 安装)。 -
打包项目
在项目根目录下运行以下命令来打包为 H5:bash
npm run build:h5或者,如果你使用
HBuilderX,可以通过图形界面点击“发行” -> “H5” 来打包。 -
查看打包结果
打包完成后,生成的 H5 文件会存放在dist/build/h5目录下。
2. 配置 Nginx 部署
-
上传文件到服务器
将dist/build/h5目录下的文件上传到 Nginx 服务器上的某个目录,例如:/var/www/html/uniapp/。 -
配置 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设置请求头,以确保代理的请求可以正常工作。
- 如果你的后端接口路径不是以
- 静态文件配置:
-
重新加载 Nginx 配置
修改完成后,重新加载 Nginx 配置来应用更改:bash
sudo nginx -s reload -
检查代理是否有效
通过访问你的前端页面,检查是否能正常访问接口并获取数据。
3. 配置 uni-app 项目中的请求代理
在 uni-app 中,可以通过 vue.config.js 文件来配置请求代理,以便在开发环境下解决跨域问题。你可以按照以下步骤进行配置:
-
配置
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. 总结
- 打包:通过
npm run build:h5打包项目。 - 上传文件:将打包后的文件上传到服务器。
- 配置 Nginx:在 Nginx 配置中设置静态文件路径并配置 API 请求代理。
- 开发环境代理:通过
vue.config.js配置开发时的请求代理(解决跨域)。
这样,你的 uni-app H5 项目就能够部署到 Nginx,并且请求代理配置也已完成,前端和后端可以正常通信。
更多推荐


所有评论(0)