部署Azure静态Web应用时遇平台/语言检测失败问题求助
针对你遇到的Could not detect any platform in the source directory.和Error: Could not detect the language from repo.报错,结合你的配置,可尝试以下解决方案:
确认项目结构与配置匹配
检查app_location指定的/src目录下是否存在对应语言/框架的标识文件:比如前端项目的package.json(React/Vue/Angular)、纯静态站的index.html、Python静态项目的requirements.txt等。如果这些核心文件不在/src下,Azure自然无法检测到平台信息。例如很多React项目的package.json在仓库根目录,此时将app_location设为/src会导致检测脚本找不到标识文件,需调整为.(根目录)。手动指定构建预设强制检测
当自动检测失效时,可在部署工作流中手动添加BUILD_PRESET环境变量,直接指定项目类型。修改你的部署步骤配置如下:- name: Deploy Azure Static Web App uses: Azure/static-web-apps-deploy@v1 with: azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }} repo_token: ${{ secrets.GITHUB_TOKEN }} app_location: "/src" api_location: "" output_location: "/build" env: BUILD_PRESET: "react" # 根据项目替换为vue/angular/vanilla/static-html等常用预设值包括
react、vue、angular、vanilla、static-html、hugo等,需与你的项目类型对应。修正output_location路径格式
output_location是相对于app_location的路径,而非绝对路径。如果你的/src目录执行构建后,产物生成在src/build下,需将配置中的/build改为build,避免路径错误导致检测或部署失败。验证本地构建流程
先在本地进入/src目录,执行完整构建命令(如npm install && npm run build),确认能成功生成产物到指定目录,且产物包含index.html等入口文件。本地构建失败的话,Azure部署也会同步出错。检查路径大小写与正确性
部分仓库系统(如Linux环境的托管仓库)区分大小写,确保配置中的路径(如/src)与实际仓库目录名完全匹配,避免因大小写不一致导致检测脚本找不到目标目录。
内容的提问来源于stack exchange,提问作者Bhanuvidh Mansinghani

