From 32584f11d23820ad0f0148bd0255c7ca47aa304d Mon Sep 17 00:00:00 2001 From: lkddi Date: Fri, 24 Apr 2026 23:42:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy_update.sh | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/deploy_update.sh b/deploy_update.sh index 6b9f2de..5ad6b03 100644 --- a/deploy_update.sh +++ b/deploy_update.sh @@ -42,6 +42,20 @@ if [ ! -f "vendor/autoload.php" ]; then fi echo -e "${GREEN}✅ 依赖安装成功且文件存在。${NC}" +# 关键 Composer polyfill 文件检查:若 vendor 目录不完整,Laravel 接口会返回 PHP Warning HTML,前端会误判为 JSON 解析失败 +if [ ! -f "vendor/symfony/polyfill-mbstring/bootstrap.php" ]; then + echo -e "${RED}========================================${NC}" + echo -e "${RED} ❌ 致命错误:Composer vendor 不完整! ${NC}" + echo -e "${RED} 缺少 vendor/symfony/polyfill-mbstring/bootstrap.php。 ${NC}" + echo -e "${RED} 请删除线上 vendor 后重新执行 composer install。 ${NC}" + echo -e "${RED}========================================${NC}" + exit 1 +fi + +# 重新生成生产环境 autoload,避免 autoload_files.php 指向已缺失的旧文件 +composer dump-autoload --no-dev --optimize --classmap-authoritative --no-interaction +if [ $? -ne 0 ]; then echo -e "${RED}❌ Composer autoload 重建失败${NC}"; exit 1; fi + # 3. 前端构建 echo -e "${YELLOW}[3/7] 前端构建 (npm run build)...${NC}" npm run build @@ -73,4 +87,4 @@ chmod -R 775 storage bootstrap/cache echo -e "${GREEN}========================================${NC}" echo -e "${GREEN} 🎉 更新成功!网站已恢复。 ${NC}" -echo -e "${GREEN}========================================${NC}" \ No newline at end of file +echo -e "${GREEN}========================================${NC}"