# 如何把React.js 项目部署到服务器 ## 前言 React.js 作为当前最流行的前端框架之一,开发完成后如何部署到生产环境是开发者必须掌握的技能。本文将详细介绍从项目构建到服务器部署的全流程,涵盖本地打包、服务器配置、Nginx部署、HTTPS配置等核心环节。 --- ## 一、项目构建准备 ### 1. 优化生产环境配置 在部署前需确保项目已针对生产环境优化: ```bash # 检查package.json中的生产依赖 npm install --only=prod # 清理无用依赖 npm prune
创建.env.production
文件配置生产环境变量:
REACT_APP_API_BASE_URL=https://api.yourdomain.com REACT_APP_ENV=production
npm run build
构建完成后会在项目根目录生成build/
文件夹,包含所有静态资源。
# Ubuntu示例 sudo apt update sudo apt install -y nginx nodejs npm
通过SFTP/SCP或Git将build/
目录上传至服务器:
scp -r build/ user@your_server_ip:/var/www/react-app/
/etc/nginx/sites-available/yourdomain.com
:
server { listen 80; server_name yourdomain.com www.yourdomain.com; root /var/www/react-app/build; index index.html; location / { try_files $uri $uri/ /index.html; } # 静态资源缓存 location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { expires 1y; add_header Cache-Control "public, no-transform"; } }
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled sudo nginx -t # 测试配置 sudo systemctl restart nginx
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
证书默认90天有效期,添加自动续期:
sudo certbot renew --dry-run
npm install -g pm2 pm2 serve /var/www/react-app/build 3000 --spa pm2 startup pm2 save
创建Dockerfile
:
FROM node:16-alpine as builder WORKDIR /app COPY . . RUN npm install && npm run build FROM nginx:alpine COPY --from=builder /app/build /usr/share/nginx/html EXPOSE 80
构建并运行:
docker build -t react-app . docker run -d -p 80:80 react-app
白屏问题
try_files
配置basename
时)API请求404
location /api/ { proxy_pass https://api.yourdomain.com; }
缓存更新失效
build/asset-manifest.json
中检查文件哈希值通过以上步骤,您的React应用已成功部署到生产环境。建议定期: - 监控服务器资源使用情况 - 设置CI/CD自动化部署流程 - 启用Gzip压缩和CDN加速提升性能
部署只是开始,持续优化才能保证最佳用户体验! “`
注:实际部署时请根据项目具体情况调整配置参数,不同服务器环境可能存在细微差异。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。