APK包不在ASP.NET Core MVC中提供

moh*_*eli 5 c# android asp.net-core-mvc

我想.apk在我的ASP.NET Core MVC项目中提供文件,但由于它返回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())
});
Run Code Online (Sandbox Code Playgroud)

再次没有结果。我得到404。

然后,我创建了一个Web.config文件并添加了此MIME类型:

<staticContent>
  <mimeMap fileExtension=".apk" mimeType="application/vnd.android.package-archive" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)

不过,不会提供.apk文件。

我该怎么办?

Mat*_*nik 12

ASP.NET Core 静态文件中间件显然不提供在ContentTypeProvider. 要解决此问题,您应该将 MIME 映射添加到ContentTypeProvider

    FileExtensionContentTypeProvider contentTypes = new FileExtensionContentTypeProvider();
    contentTypes.Mappings[".apk"] = "application/vnd.android.package-archive";
    app.UseStaticFiles(new StaticFileOptions
    {
        ContentTypeProvider = contentTypes
    });
Run Code Online (Sandbox Code Playgroud)

现在.apk将送达。