在Azure上发布Blazor WebAssembly项目时静态资源的定位问题
基础背景
我有一个用于测试的Blazor WebAssembly(Core Hosted)解决方案,共测试了2种部署场景:
- 第一种:服务端发布到Azure,客户端部署到存储账户。
- 第二种:全量项目统一发布到Azure。
注:我的解决方案包含3个项目
- Client
- Server
- Shared(Razor Class Library):包含Blazor组件、css、js等资源
第一种部署场景运行情况
发布服务端:右键Server项目选择「发布」,选择Azure并完成配置后启动发布流程。
发布客户端:右键Client项目选择「发布」,选择发布到文件夹,完成后通过Microsoft Azure Storage Explorer工具,将\bin\Release\net5.0\browser-wasm\publish\wwwroot\下的文件上传到存储账户。
此时可明确看到:
- css、js等静态资源位于
\wwwroot\_content\目录下 - Prolog.Client.dll、Prolog.Shared.dll等dll文件位于
\wwwroot\_framework目录下
所有功能运行正常。
第二种部署场景问题描述
全量发布到Azure:直接右键Server项目选择「发布」,选择Azure并完成配置后启动发布流程。
功能运行正常,通过Kudu站点(https://myappxxx.scm.azurewebsites.net/)可浏览服务端文件,在wwwroot目录下可找到Prolog.Client.dll、Prolog.Server.dll、Prolog.Shared.dll等所有dll文件。
核心疑问:我无法找到css、js等静态资源的物理存储位置,是否可以通过Kudu站点浏览文件夹找到这些资源?

举例来说,我尝试通过Kudu站点查找已发布的main.js文件未果,也没有找到*_content文件夹和Prolog.Shared*文件夹。

问题解决结果
感谢Mister Magoo的指导,我尝试使用Azure门户对应App Service「开发工具」板块下的「App Service Editor (Preview)」,可成功浏览到包含静态资源在内的所有文件,其功能与Kudu控制台相似,但我的Kudu控制台存在部分文件和文件夹缺失的问题。我在Kudu控制台看到一条警告提示:

我在本地存储中添加了对应的配置项后,所有缺失的文件都正常显示,问题已解决。
内容的提问来源于stack exchange,提问作者Bronzato

