部署到Azure App Service后找不到仓库gamefiles等资源文件如何解决?
Azure App Service 部署缺失静态资源文件夹解决方案
无需额外开通其他Azure服务,你可以按以下优先级排查配置问题:
- 调整项目文件的资源复制规则
该问题大多是因为项目构建时未将非代码类静态资源纳入输出目录。在Visual Studio中右键gamefiles文件夹下的所有图片资源,选择「属性」,将「生成操作」设置为「内容」,「复制到输出目录」设置为「如果较新则复制」即可。
也可以直接修改项目.csproj文件,添加如下配置批量设置规则:<ItemGroup> <Content Include="gamefiles\**\*"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> </ItemGroup> - 校验Github Actions工作流配置
- 在工作流yaml文件的构建步骤结束后、上传构建产物步骤前,添加命令打印构建输出目录结构,确认构建环节已经生成了
gamefiles文件夹:- 若使用Linux构建环境,添加
ls -R <你的构建输出路径> - 若使用Windows构建环境,添加
dir /s <你的构建输出路径>
- 若使用Linux构建环境,添加
- 检查部署到Azure App Service的步骤,确认指定的产物路径包含完整的构建输出内容,没有过滤掉静态资源目录。
- 在工作流yaml文件的构建步骤结束后、上传构建产物步骤前,添加命令打印构建输出目录结构,确认构建环节已经生成了
- 确认App Service的静态资源访问配置
若你使用的是ASP.NET/ASP.NET Core项目,需要确保启动代码中已启用静态文件中间件:// ASP.NET Core Program.cs 示例 app.UseStaticFiles(); // 如果gamefiles文件夹不在默认wwwroot目录下,需要额外添加配置 app.UseStaticFiles(new StaticFileOptions { FileProvider = new PhysicalFileProvider(Path.Combine(builder.Environment.ContentRootPath, "gamefiles")), RequestPath = "/gamefiles" }); - 快速验证方案
你可以直接访问App Service的Kudu控制台,将本地的gamefiles文件夹手动上传到站点根目录,测试相对路径是否可以正常访问,先排除业务代码路径编写错误的问题。
内容的提问来源于stack exchange,提问作者AleksanderVH
相关产品推荐
相关产品推荐

