Response::view запускает загрузку в Laravel

Я пытаюсь отобразить список воспроизведения HTTP Live Streaming (файл m3u8), который создается Laravel. Для этого у меня есть представление (playlist.blade.php):

#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:5
#EXT-X-MEDIA-SEQUENCE:0
@foreach($videos as $video)
#EXTINF:4,
/videos/watch/{{ $video->file }}.ts
@endforeach
#EXT-X-ENDLIST

В моем контроллере я использую следующий код:

return Response::view('compilations.playlist', compact('videos'))->header('Content-Type', 'application/x-mpegurl');

Чтобы составить представление с правильными заголовками.

Когда я загружаю файл на статический сервер, такой как nginx, с правильным типом mime, файл отображается в браузере и работает с Apple mediastreamvalidator. Когда я пытаюсь получить доступ к файлу через сервер Laravel, браузер загружает файл автоматически (вместо того, чтобы отображать его), и он не работает с расширением mediastreamvalidator.

Как я могу создать представление с правильными заголовками и заставить его вести себя так, как сервер nginx (отображать в браузере, правильно загружать в инструменте проверки/видеоплеерах)?


person GTF    schedule 06.10.2014    source источник
comment
Насколько я понимаю, он работает на nging, но не на php-сервере по умолчанию? Может быть, это связано с этой ошибкой на сервере php по умолчанию? (См. комментарий к принятому запросу на этот вопрос) stackoverflow.com/questions/5519802/   -  person Andión    schedule 06.10.2014
comment
Да, на nginx работает, но не когда я использую php artisan serve (или когда использую nginx + php-fpm). Дело в том, что когда я использую Postman или cURL для доступа к файлу, я получаю правильный заголовок Content-Type в ответе, поэтому я не думаю, что это связано с этой ошибкой.   -  person GTF    schedule 06.10.2014
comment
Это странно. Что ж, в качестве альтернативы вы всегда можете использовать vagrant + laravel homestead и обслуживать свою локальную среду разработки через nginx (по умолчанию в homestead). В любом случае, я хотел бы увидеть ответ, который проясняет это.   -  person Andión    schedule 06.10.2014
comment
На моем рабочем сервере он также работает через nginx, но ответ генерируется Laravel, поэтому nginx не задействован. Я просто хочу использовать Response::view и заставить его работать правильно, не сообщая браузеру о загрузке файла.   -  person GTF    schedule 06.10.2014