Я использую rails_blob_url(o.audio_file)
, но это раздражает, так как URL-адрес не открывает файл в браузере, а загружает файл как вложение (это не поведение браузера по умолчанию для аудиофайлов).
Я хочу, чтобы браузер открывал файл так, как хочет. Я не хочу принудительно скачивать файл...
rails_blob_url(o.audio_file, disposition: :inline)
Не работает.
Да, но если я помещу файл в /public/song.mp3 (или загружу его непосредственно на S3), файл не будет загружен - он откроется в браузере, который является способом подачи файла по умолчанию, и это также то, что я хочу, но активно хранилище затрудняет это, и я не знаю, почему и как это отключить
Вам, вероятно, нужно заглянуть в заголовок content-disposition... вы, вероятно, могли бы позволить браузеру отображать его встроенным, а не загружать. Но имейте в виду, что не все браузеры (например, на мобильных устройствах) работают с ним одинаково.
В дополнение к использованию rails_blob_url(o.audio_file, disposition: :inline)
вы также должны разрешить тип контента.
Rails.application.config.active_storage.content_types_allowed_inline += [
"audio/mp3",
"audio/mp4",
"audio/mpeg"
]
На данный момент типы контента по умолчанию: ["image/png", "image/gif", "image/jpg", "image/jpeg", "image/tiff", "image/bmp", "image/vnd.adobe.photoshop", "image/vnd.microsoft.icon", "application/pdf"]
поэтому мне пришлось добавить все аудио.
Об этом есть немного больше информации здесь
Спасибо! Я часами билась головой о стену об этом :)
Если это действительно аудиофайл, вам, вероятно, следует отобразить обычное HTML-представление и встроить какой-либо компонент HTML5, который позаботится о воспроизведении аудиофрагмента. Я не думаю, что будет надежно зависеть от браузера, потому что каждый браузер может обрабатывать это по-разному.