从 Azure Web 应用程序 (Linux) 提供 Angular PWA 因缺少 .webmanifest 而失败
Serving Angular PWA from Azure Web App (Linux) fails on missing .webmanifest
关于同一问题的 questions 数量,但这些解决方案特定于 IIS:我们在 Azure Web App Linux 实例中托管并使用 Kestrel (ASP.Net Core 3.1) 作为网络服务器。
设置 Angular PWA 并部署新版本后,Angular 客户端抛出以下消息;
manifest.webmanifest:1 Manifest: Line: 1, column: 1, Syntax error.
通常在无法加载 manifest.webmanifest 时显示此错误(我正在测试的当前版本是 Angular PWA 安装的默认文件,因此其内容不太可能是问题所在).此外,当我在 Chrome 开发人员工具中查看文件时,它会显示我的 index.html
.
的内容
按照 IIS 的说明,我试图了解如何使用 Kestrel 提供文件。 建议如下(我也试过 application/json
):
FileExtensionContentTypeProvider provider = new FileExtensionContentTypeProvider();
provider.Mappings[".webmanifest"] = "application/manifest+json";
app.UseStaticFiles(new StaticFileOptions()
{
ContentTypeProvider = provider
});
我们如何从 Azure Web 服务 (Linux) 提供 Angular PWA?
在与 Ben 的回答相同的话题中,有一个 略有不同,但我没有发现其中的区别。
正确的配置是使用 UseSpaStaticFiles
,因为清单是从 Angular 静态文件夹而不是 ASP.Net 静态文件夹提供的。
适合我的配置:
FileExtensionContentTypeProvider provider = new FileExtensionContentTypeProvider();
provider.Mappings[".webmanifest"] = "application/json";
app.UseSpaStaticFiles(new StaticFileOptions()
{
ContentTypeProvider = provider
});
我还注意到 Henric Rosvall 的评论:
In .NET Core 5.0 it has been included in the default provider mappings, and trying to add it manually will cause exceptions since it's already there.
关于同一问题的 questions 数量,但这些解决方案特定于 IIS:我们在 Azure Web App Linux 实例中托管并使用 Kestrel (ASP.Net Core 3.1) 作为网络服务器。
设置 Angular PWA 并部署新版本后,Angular 客户端抛出以下消息;
manifest.webmanifest:1 Manifest: Line: 1, column: 1, Syntax error.
通常在无法加载 manifest.webmanifest 时显示此错误(我正在测试的当前版本是 Angular PWA 安装的默认文件,因此其内容不太可能是问题所在).此外,当我在 Chrome 开发人员工具中查看文件时,它会显示我的 index.html
.
按照 IIS 的说明,我试图了解如何使用 Kestrel 提供文件。 application/json
):
FileExtensionContentTypeProvider provider = new FileExtensionContentTypeProvider();
provider.Mappings[".webmanifest"] = "application/manifest+json";
app.UseStaticFiles(new StaticFileOptions()
{
ContentTypeProvider = provider
});
我们如何从 Azure Web 服务 (Linux) 提供 Angular PWA?
在与 Ben 的回答相同的话题中,有一个
正确的配置是使用 UseSpaStaticFiles
,因为清单是从 Angular 静态文件夹而不是 ASP.Net 静态文件夹提供的。
适合我的配置:
FileExtensionContentTypeProvider provider = new FileExtensionContentTypeProvider();
provider.Mappings[".webmanifest"] = "application/json";
app.UseSpaStaticFiles(new StaticFileOptions()
{
ContentTypeProvider = provider
});
我还注意到 Henric Rosvall 的评论:
In .NET Core 5.0 it has been included in the default provider mappings, and trying to add it manually will cause exceptions since it's already there.