我有一个要在服务器上部署的next SSR应用程序。我的CI (Buddy)通过运行bash命令来运行管道。所有这些都没有任何错误,但最终应用程序无法在. next目录中找到文件。抛出错误404 not found _nuxt/46f65559 .modern.js除了文件在服务器上不存在之外,一切看起来都很正常。我试着用命令
sudo find . -type f -name 46f6559.modern.js
找到它。主文件链接到存储库中不再存在的旧文件。但我真的不知道那里发生了什么。构建看起来是新的,. next文件夹被构建文件填充。
这是管道中工作良好的命令。
yarn build
然后
if [ -d "builds/$BUDDY_EXECUTION_REVISION" ] && [ "$BUDDY_EXECUTION_REFRESH" = "true" ];
then
echo "Removing: builds/$BUDDY_EXECUTION_REVISION"
rm -rf builds/$BUDDY_EXECUTION_REVISION;
fi
if [ ! -d "builds/$BUDDY_EXECUTION_REVISION" ];
then
echo "Creating: builds/$BUDDY_EXECUTION_REVISION"
cp -dR deploy-cache builds/$BUDDY_EXECUTION_REVISION;
fi
然后
echo "Linking current to revision: $BUDDY_EXECUTION_REVISION"
rm -f current
ln -s builds/$BUDDY_EXECUTION_REVISION current
然后
pm2 startOrReload current/ecosystem.config.js --only Production
一切都以成功告终。有人知道那里会发生什么吗?这是最后的命令吗?如果我在本地机器上运行它,一切都很好。谢谢你的帮助。
使用
解决了这个问题pm2 startOrReload current/ecosystem.config.js --only Development
而不是
pm2 startOrReload current/ecosystem.config.js --only Production