Подтвердить что ты не робот

Невозможно разместить файлы MP4 на веб-сайте Azure

Я размещаю статический веб-сайт на зарезервированном веб-сайте в Azure (это PaaS, без доступа к ОС /IIS ). Я пытаюсь добавить некоторые видео .mp4, но когда я нажимаю ссылки, я получаю

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

См. пример здесь. Если я нажимаю правой кнопкой мыши на ссылку и пытаюсь сохранить файл, я получаю - Failed - Нет файла.

Я использую платный экземпляр, поэтому не думаю, что это проблема с ресурсами. Видеофайлы меньше 2 МБ. Они никогда не работали. Сайт очень статический.

Кто-нибудь знает, как я могу это решить? Должен ли я размещать файлы MP4 каким-либо другим способом?

Спасибо,

4b9b3361

Ответ 1

Связанный ответ SO работал у меня концептуально, но не указывал соответствующий файлExtension. Мой конфиг должен был указать следующее. (Обратите внимание, что для любого, у кого есть этот вопрос, по умолчанию на моем лазурном веб-сайте не было сначала web.config, поэтому мне пришлось добавить следующее в текстовый файл, сохранить как web.config и FTP на свой веб-сайт.

<?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>

Ответ 3

В настоящее время существует только один способ сделать это, и я подтвердил это с командой Azure.

Добавьте файл web.config в корень приложения wwwroot\web.config со следующим содержимым

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

Ответ 4

Для тех, кто не использует .NET и, следовательно, не хочет добавлять web.config, вы также можете настроить его на портале Azure для служб веб-приложений.

  1. Перейти к ресурсу службы веб-приложений
  2. Нажмите на Конфигурация в разделе Настройки
  3. Нажмите на "Отображение пути".
  4. Нажмите "+ Новый обработчик"
  5. Введите нужный обработчик, как показано на рисунке, используя абсолютный путь для процессора сценариев.

enter image description here Подробнее о отображениях обработчика читайте.

Ответ 5

У меня точно такая же проблема. Видео воспроизводится на localhost, но не при развертывании в Azure.

Ответ ewitkows правильный. Веб-сервер не возвращает правильный тип MIME, поэтому вам необходимо добавить их в ваш элемент web.config <system.webServer>.

Однако я бы хотел добавить еще одну деталь. Когда вы добавляете код, который упоминает ewitkows, ваш веб-сайт может перестать отображать видео в localhost, даже если оно правильно отображается в Azure. Если щелкнуть правой кнопкой мыши элемент HTML <video> и щелкнуть команду меню Просмотреть видео из контекстного меню, он даст вам 500 HTTP Status Code и отобразит Пользовательская страница ошибок IIS для этого выглядит так:

enter image description here

Обратите внимание на разделы Ошибка конфигурации, Файл конфигурации и Источник конфигурации. Они сообщают вам, что в IIS уже есть сопоставление типов MIME для элементов, добавленных вами в 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>

Итак, сначала нужно удалить IIS. Затем он будет работать как на localhost, так и на Azure.

Ответ 6

Azure Web Apps не поддерживает некоторые типы медиафайлов. Вы можете использовать службу Azure Media для ее загрузки и позже ссылаться на медиафайл из вашего кода.