web-dev-qa-db-fra.com

Comment ajouter des types MIME dans ASP.NET Core

Lors du développement d'une application à l'aide de .NET Framework 4.6 (MVC4/5), j'avais l'habitude d'ajouter des types MIME personnalisés dans le fichier web.config, comme ceci (il s'agit des types MIME réels que je dois ajouter dans mon application):

<system.webServer>
  <staticContent>
    <mimeMap fileExtension=".wasm" mimeType="application/wasm"/>
    <mimeMap fileExtension="xap" mimeType="application/x-silverlight-app"/>
    <mimeMap fileExtension="xaml" mimeType="application/xaml+xml"/>
    <mimeMap fileExtension="xbap" mimeType="application/x-ms-xbap"/>
  </staticContent>

Comment puis-je répliquer ce comportement dans un .NET Core? Est-il possible de le faire de la même manière?

9
Rambo3

Cette configuration est destinée au serveur Web, pas à ASP.NET. Le system.webServer la section du web.config traite de la configuration d'IIS.

Si votre application ASP.NET Core s'exécute derrière IIS et IIS gère le contenu statique, vous devez continuer à utiliser la même chose.

Si vous utilisez nginx, vous pouvez ajouter des types MIME à votre configuration ou modifier le mime.types fichier. Si vous utilisez un autre serveur Web, consultez la documentation du serveur Web.

Si ASP.NET Core gère le contenu statique lui-même et s'exécute sur Edge, ou si vous avez besoin d'ASP.NET Core pour connaître les types MIME, vous devez configurer le gestionnaire d'ASP.NET Core pour qu'il en soit conscient. Ceci est expliqué dans la documentation .

Un exemple de la documentation:

public void Configure(IApplicationBuilder app)
{
    var provider = new FileExtensionContentTypeProvider();
    // Add new mappings
    provider.Mappings[".myapp"] = "application/x-msdownload";

    app.UseStaticFiles(new StaticFileOptions
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "images")),
        RequestPath = "/StaticContentDir",
        ContentTypeProvider = provider
    });
15
vcsjones