ASP.NET Core MVC

时间:2018-03-21 09:07:45

标签: c# android asp.net-core-mvc

我想在我的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文件。

我该怎么办?

1 个答案:

答案 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