下一个SSR应用找不到管线生成的部分文件



我有一个要在服务器上部署的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

最新更新