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

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

我想在我的 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/

相关文章:

android - 在 ScrollView 中传播触摸事件

c# - 使用 Entity Framework Core 来自 Newtonsoft JsonSerializer 的自引用循环

c# - 在 WPF 中为 ToggleButton OnMouseOver 的文本添加下划线

c# - 当我尝试将全局样式应用于 Xamarin Forms 中的自定义 ContentView 时出现 NullReferenceException

Android手指检测-方向和椭圆

asp.net-core - 如何建模将路径段绑定(bind)到对象属性

asp.net-core-mvc - Asp.NET MVC 6,TagHelper "asp-for"为自身建模

c# wpf - 不能同时设置 DisplayMemberPath 和 ItemTemplate

c# - 在 WPF 的设计模式下获取源目录的路径

java - Android Studio : Android Theme. AppCompat 错误