81 votes

Comment puis-je demander à IIS de servir correctement les fichiers .webmanifest sur mon site Web?

Le Favicon Generator assemble un package pour les webmasters à utiliser pour les icônes sont disponibles pour de nombreux appareils différents. La page est livré avec un fichier appelé site.manifest qui est relié via la balise suivante dans la page web du document <head>:

<link rel="manifest" href="site.webmanifest">

Selon Mozilla: "Le manifeste de l'application web fournit des informations sur une application (comme le nom, l'auteur, icône, et la description), dans un JSON fichier texte. Le but du manifeste est d'installer des applications web à l'écran d'accueil d'un appareil, offrant aux utilisateurs un accès plus rapide et une expérience plus riche."

Malheureusement, si vous utilisez Microsoft Internet Information Services (IIS), vous obtiendrez un 404.3 d'erreur si vous essayez d'accéder à l' site.webmanifest le fichier.

Le message d'erreur exact est comme suit: "La page que vous demandez ne peut être signifié en raison de la configuration du poste. Si la page est un script, ajoutez un gestionnaire. Si le fichier doit être téléchargé, ajouter un type MIME carte."

Comment puis-je bien servir site.webmanifest fichiers dans IIS?

100voto

Dave L Points 589

Par défaut, IIS ne pas servir tous les fichiers qui n'ont pas un MIME qui lui est associé dans son (IIS) les paramètres de base.

Pour relever ce défi, vous aurez besoin de la carte de l' .webmanifest extension de fichier de type MIME.

Pour ce faire, ouvrez IIS et suivez les étapes ci-dessous;

  1. Sur le côté gauche, sélectionnez votre site web ou le serveur entier dans les "Connexions" dans le menu. Si vous sélectionnez le serveur de mappage MIME s'appliquent à tous les sites web sur le serveur. Si vous sélectionnez un site web, il ne sera applicable qu'à un seul site web.

  2. Ensuite, sélectionnez "Types MIME" de l'IIS menu:

MIME Types Menu Item

  1. Une fois là, cliquez sur "ajouter..." dans le menu de droite.

  2. Dans la boîte de dialogue qui s'ouvre, spécifiez .webmanifest dans l'extension de nom de fichier de la boîte de application/manifest+json dans la zone type MIME.

Add MIME Type dialog box

  1. Cliquez sur "OK".

Bravo, vous avez défini le type MIME .webmanifest sur IIS.

67voto

Richard Hubley Points 932

Pour Azure, j'ai ajouté ceci en tant que web.config

 <?xml version="1.0"?>

<configuration>
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension=".json" mimeType="application/json" />
            <mimeMap fileExtension=".webmanifest" mimeType="application/manifest+json" />
        </staticContent>
    </system.webServer>
</configuration> 
 

59voto

Ben Points 727

Pour ceux qui utilisent ASP.NET Core (j'utilise 2.1), vous pouvez configurer les types MIME qui peuvent être servis dans le fichier d'application Startup.cs selon les documents de fichiers statiques :

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    FileExtensionContentTypeProvider provider = new FileExtensionContentTypeProvider();
    provider.Mappings[".webmanifest"] = "application/manifest+json";

    app.UseStaticFiles(new StaticFileOptions()
    {
        ContentTypeProvider = provider
    });

    app.UseMvc();
}
 

15voto

Peter Kerr Points 208

La solution la plus simple consiste à renommer votre fichier manifeste en site.webmanifest.json et à le lier en tant que

  <link rel="manifest" href="site.webmanifest.json">
 

IIS doit déjà avoir un type MIME pour les fichiers .json. Cela est également utile si vous déployez sur Azure où il n'est pas si facile de modifier les paramètres IIS.

9voto

Cezar Crintea Points 81

Ajout à la réponse de @ Ben: si vous avez un SPA, vous devez mettre le code StaticFileOptions dans l'appel UseSpaStaticFiles ():

 FileExtensionContentTypeProvider provider = new FileExtensionContentTypeProvider();
provider.Mappings[".webmanifest"] = "application/manifest+json";

app.UseSpaStaticFiles(new StaticFileOptions()
{
    ContentTypeProvider = provider
});
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X