web-dev-qa-db-fra.com

Impossible d'héberger des fichiers MP4 sur le site Web Azure

J'héberge un site Web statique sur un site Web réservé dans Azure (c'est PaaS, pas d'accès à OS/IIS). J'essaie d'ajouter des vidéos .mp4 mais quand je clique sur les liens que j'obtiens

The resource you are looking for has been removed, had its name changed, 
or is temporarily unavailable.

Veuillez voir l'exemple ici . Si je clique avec le bouton droit sur le lien et essaie d'enregistrer le fichier, je reçois - Échec - Aucun fichier.

J'utilise une instance payante, alors ne pensez pas qu'il s'agit d'un problème de ressources. Les fichiers vidéo sont inférieurs à 2 Mo. Ils n'ont jamais travaillé. Le site est très statique.

Est-ce que quelqu'un sait comment je peux résoudre ce problème? Dois-je héberger des fichiers MP4 d'une autre manière?

Merci,

39
Ed Cunn

La réponse liée SO fonctionnait pour moi conceptuellement, mais elle n'indiquait pas l'extension de fichier appropriée. Ma configuration devait plutôt indiquer les éléments suivants. (Remarque, pour tous ceux qui ont cette question, par défaut mon Le site Web Azure n'avait pas de web.config au départ, j'ai donc dû ajouter ce qui suit à un fichier texte, l'enregistrer en tant que web.config et FTP dans mon site Web.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <staticContent>
               <remove fileExtension=".mp4" />
               <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
               <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
     </staticContent>
    </system.webServer>
</configuration>
68
ewitkows

Avez-vous confirmé que votre type MIME pour .MP4 est correctement configuré, comme demandé:

Windows Azure - Servir des types MIME inconnus (mp4) dans Windows Azure IIS

6
RyanCEI

Il n'y a qu'une seule façon de le faire actuellement, et je l'ai confirmé avec l'équipe Azure.

Ajoutez un fichier web.config à la racine de l'application wwwroot\web.config avec le contenu suivant

<?xml version="1.0" encoding="UTF-8"?>
  <configuration>
    <system.webServer>
      <staticContent>
        <mimeMap fileExtension=".mp4" mimeType="application/mp4" />
      </staticContent>
    </system.webServer>
  </configuration>
3
A. Wentzel

J'ai exactement ce même problème. La vidéo a été lue sur le localhost mais pas lorsqu'elle a été déployée sur Azure.

réponse de ewitkows est correct. Le serveur Web ne renvoie pas le type MIME approprié, vous devez donc les ajouter à l'élément <system.webServer> De votre web.config.

Cependant, je voudrais juste ajouter un détail supplémentaire. Lorsque vous ajoutez le code que réponse de ewitkows mentionne, votre site Web peut cesser d'afficher la vidéo sur localhost même s'il s'affiche correctement sur Azure. Si vous cliquez avec le bouton droit sur l'élément HTML <video> Et cliquez sur la commande de menu Afficher la vidéo dans le menu contextuel, cela vous donnera un 500 HTTP Status Code , et affichera la page d'erreur personnalisée IIS pour cela comme ceci:

enter image description here

Observez l'erreur de configuration , Fichier de configuration et Config Source sections. Ils vous disent que IIS a déjà un mappage de type MIME pour les éléments que vous avez ajoutés dans le web.config.

<staticContent>
  <remove fileExtension=".ogv"/>
  <remove fileExtension=".webm"/>
  <remove fileExtension=".mp4"/>

  <mimeMap fileExtension=".ogv" mimeType="video/ogg"/>
  <mimeMap fileExtension=".webm" mimeType="video/webm"/>
  <mimeMap fileExtension=".mp4" mimeType="video/mp4"/>
</staticContent>

Donc, vous devez également supprimer les IIS ceux en premier. Ensuite, cela fonctionnera à la fois sur localhost et également sur Azure.

1
Water Cooler v2

Si vous utilisez un Azure App Service, consultez la réponse sur Comment ajouter des types MIME dans ASP.NET Core J'ai essayé la route web.config et cela n'a pas fonctionné mais la modification de Startup.cs l'a fait

0
TimSmith-Aardwolf