我想在我的ASP.NET核心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
文件。
我该怎么办?
答案 0 :(得分:2)
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
。