You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 11:20:18