Невозможно разместить файлы 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 каким-либо другим способом?
Спасибо,
Ответы
Ответ 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>
Ответ 2
Вы подтвердили, что ваш тип MIME для .MP4 настроен правильно:
Windows Azure - Служить неизвестным (mp4) типам MIME в хранилище IIS для Windows Azure
Ответ 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 для служб веб-приложений.
- Перейти к ресурсу службы веб-приложений
- Нажмите на Конфигурация в разделе Настройки
- Нажмите на "Отображение пути".
- Нажмите "+ Новый обработчик"
- Введите нужный обработчик, как показано на рисунке, используя абсолютный путь для процессора сценариев.
Подробнее о отображениях обработчика читайте.
Ответ 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 для ее загрузки и позже ссылаться на медиафайл из вашего кода.