## 构建生产环境 生产环境无需使用`yarn serve`启动前端lamp-web-plus项目,只需要将项目打包成静态页面,然后使用nginx进行代理即可访问。 1. 修改 [.env](https://github.com/zuihou/lamp-web-plus/blob/main/.env) 文件 ~~~ # 租户类型 必须跟后端项目 mysql.yml 中 lamp.database.multiTenantType 配成一样. 可选项:NONE、COLUMN、SCHEMA、DATASOURCE VITE_GLOB_MULTI_TENANT_TYPE = DATASOURCE # 登录页是否显示验证码 可选值 true false VITE_GLOB_SHOW_CAPTCHA = true # 客户端id&秘钥 (必须和 c_application 表中数据一致!) VITE_GLOB_CLIENT_ID = lamp_web VITE_GLOB_CLIENT_SECRET = lamp_web_secret ~~~ 2. 将源码打包成静态文件 ~~~ pnpm install pnpm build:prod ~~~ ![](https://img.kancloud.cn/61/28/612831d3d214a8f6992566b2e99ae9aa_690x762.png) 3. 构建完成后, 会生成一个 `dist` 文件夹, 将该文件夹上传到服务器任意路径 (如:/data/projects/ ), 然后使用nginx 配置代理。 ![](https://img.kancloud.cn/6b/83/6b8318730aec42c6cf920dd0ae0514e6_583x629.png) 4. 在 /data/projects/ 目录,将刚上传的 `dist` 文件夹重命名为 lamp-web-plus 5. 为了解决跨域问题, nginx 需要将代理 `lamp-web-plus` 的端口和后端网关的端口保持一致. 5. 配置nginx : ~~~ server { listen 80; server_name tangyh.top; underscores_in_headers on; # /lamp-web 代理前端 location / { proxy_set_header Host $host:$server_port; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_read_timeout 600; proxy_send_timeout 600; # 请将第三步打包后生成的 dist 文件夹上传到 nginx 所在服务器的 /data/projects/ 目录,并重名名为 lamp-web-plus root /data/projects/lamp-web-plus; index index.html; } # lamp-cloud 网关服务 代理 location /api { proxy_set_header Host $host:$server_port; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_read_timeout 600; proxy_send_timeout 600; # 这里代理的地址一定是 lamp-cloud 项目的 lamp-gateway 服务的请求地址 proxy_pass http://localhost:8760/api; } } ~~~