Ubuntu下Nginx+PM2部署的NextJS项目代码更新后页面不生效求助
解决NextJS部署后代码变更不生效的问题
常见原因及对应解决步骤
1. 缺少生产环境构建步骤
NextJS生产环境运行依赖预构建的静态文件,直接拉取代码后重启PM2不会自动触发构建,执行以下命令补全流程:
cd /path/to/your/project # 若有新增依赖,先安装 npm install # 构建生产代码 npm run build # 重启PM2进程 pm2 restart app-name
2. PM2启动配置错误
检查PM2是否指向了生产环境的启动脚本,执行命令查看进程详情:
pm2 show app-name
确认script字段是否为next start或正确的生产启动路径。如果使用PM2配置文件(如ecosystem.config.js),确保配置包含生产环境参数:
module.exports = { apps: [{ name: 'app-name', script: 'node_modules/next/dist/bin/next', args: 'start', cwd: '/path/to/your/project', env: { NODE_ENV: 'production' } }] };
修改后重新加载配置并重启:
pm2 reload ecosystem.config.js
3. Nginx缓存未清除
Nginx可能缓存了旧页面内容,执行以下命令清除缓存并重启服务:
# 根据实际缓存路径调整 rm -rf /var/cache/nginx/* systemctl restart nginx
4. Git拉取未覆盖本地修改
服务器端存在未提交的本地修改时,git pull可能无法同步最新代码,先检查本地状态:
git status
若有未提交内容,先暂存再拉取:
git stash git pull # 如需恢复暂存内容,执行 git stash pop npm run build pm2 restart app-name
5. 端口或进程冲突
确认PM2进程使用的端口未被其他程序占用:
# 查看PM2进程端口 pm2 list # 检查端口占用情况,替换为你的NextJS端口 lsof -i :3000
若端口被占用,杀死对应进程后重启PM2。
内容的提问来源于stack exchange,提问作者CostaAlejandro
相关产品推荐
相关产品推荐

