我在github中有一个简单的index.html。我在 azure 中创建了一个静态 Web 应用程序并将其指向 git hub。它运行某种构建管道,并且我的页面正常运行。
现在我添加了更多页面,但是当我推送到 git 时,静态 Web 应用程序构建失败并显示:
Oryx 构建了应用程序文件夹,但无法确定应用程序工件的位置。请指定应用程序工件位置。
很多人都有同样的问题,一般建议是设置api_location,但我找不到指定在哪里。
我找不到任何构建脚本,而且我当然没有足够的知识从头开始编写一个脚本。
构建脚本大概只需要对 git 文件进行简单的签出。
在寻找解决方案时,我发现了一个隐藏在 .github 下的 yaml 文件。
它具有以下特点:
app_location: "/" # App source code path
api_location: "" # Api source code path - optional
output_location: "" # Built app content directory - optional
这并没有真正的帮助,因为它并不明显什么是“应用程序工件”,也不知道它应该去哪里。
有什么建议吗?
解决方案是找到 Azure 创建的隐藏 yaml 构建文件,并添加以下行:
skip_app_build: true
构建文件位于 .github/workflows/ 中,名称类似于 azure-static-web-apps-happy-banana-0ed8b4dxx.yml
不知道为什么默认情况下没有此设置 - 大多数静态网站只是静态网站。 据我所知,静态 Web 应用程序中不能有 php 或其他服务器端代码。
我在将 React SPA 部署为静态 Web 应用程序时遇到了同样的问题。我使用 Nx 作为构建工具,因此我必须将 is_static_export 设置为 true 并定义 output_location:
is_static_export: true
output_location: '/dist/apps/myapp/exported'
如here所述,在使用自定义构建管道时使用is_static_export。明确定义了 output_location 以避免 Oryx 感到困惑。
我将
appLocation
设置为公开,其中 index.html 文件存在于我的存储库中。这对我有用。
# For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig
app_location: "public" # App source code path
api_location: "" # Api source code path - optional
output_location: "" # Built app content directory - optional
###### End of Repository/Build Configurations ######