我想在我的 ASP.NET Core MVC 项目中提供 .apk
文件,但我不能,因为它返回 404。
我在 VS 2017 中使用默认模板创建了一个简单的 ASP.NET Core MVC 项目,并将 .apk
文件添加到 wwwroot
文件夹,然后我尝试访问它使用 /application.apk
路径,它没有工作,而 /favicon.ico
工作,并且该目录中的其他静态内容工作,因为在默认模板 app.UseStaticFiles()
被调用。
然后我尝试更改配置,将静态内容从 wwwroot
文件夹中取出,并将 application.apk
放在项目的根目录中(一个文件夹从 wwwroot
) 并使用以下方法配置项目:
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new PhysicalFileProvider(Directory.GetCurrentDirectory())
});
还是没有结果。我得到 404。
然后我创建了一个 Web.config
文件并添加了这个 MIME 类型:
<staticContent>
<mimeMap fileExtension=".apk" mimeType="application/vnd.android.package-archive" />
</staticContent>
仍然不提供 .apk
文件。
我该怎么办?
最佳答案
ASP.NET Core 静态文件中间件显然不提供在 ContentTypeProvider
中没有映射到 MIME 类型的文件。要解决这个问题,您应该将 MIME 映射添加到 ContentTypeProvider
:
FileExtensionContentTypeProvider contentTypes = new FileExtensionContentTypeProvider();
contentTypes.Mappings[".apk"] = "application/vnd.android.package-archive";
app.UseStaticFiles(new StaticFileOptions
{
ContentTypeProvider = contentTypes
});
现在将提供 .apk
。
关于c# - APK 包不在 ASP.NET Core MVC 中提供,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49402090/