Ответ 1
Во-первых, в случае, если вы этого не осознали: ваша новая папка app/assets/audios
уже находится в пути загрузки... вам просто нужно перезапустить сервер для Sprockets, чтобы его поднять.
В разработке активы доступны по относительному URL: /assets/<asset file name>
.
Например, если ваш wav файл находится в /app/assets/audios/audio_file.wav
в файловой системе, он будет доступен в относительном URL /assets/audio_file.wav
в браузере. Это связано с тем, что Sprockets/Dev-Rails знает поиск папки /app/assets
и ее подкаталогов при поиске ресурсов.
В production предварительная компиляция ресурсов (обычно) происходит при развертывании. В это время ваш файл wav копируется, например. /public/assets/audio_file-<MD5 fingerprint>.wav
и доступен в относительном URL: /assets/audio_file-<MD5 fingerprint>.wav
.
Из-за разных стилей именования, используемых между разработкой и производством, в любое время, когда вы хотите ссылаться на актив, вы должны сделать это с помощью вспомогательного метода (даже в CSS!). То есть, производство включает в себя отпечаток MD5, тогда как в разработке нет. Но вам не нужно беспокоиться об этом, если вы используете помощника:
- Для изображений:
<%= image_tag('homes/logo.png') %>
- задан файл изображения, который находится в/app/assets/images/homes/logo.png
в файловой системе. - Для нестандартных активов, таких как аудиофайлы:
<%= asset_path('audio_file.wav') %>
, что приведет к относительному пути/assets/audio_file.wav
.