首先,如果您还没有意识到:您的新app/assets/audios
文件夹已经在加载路径中......您只需重新启动服务器以便Sprockets将其加载即可。
在开发,资产可在相对网址:/assets/<asset file name>
。
例如,假设您的wav文件位于文件系统中的/app/assets/audios/audio_file.wav
,则可通过浏览器中的相关网址/assets/audio_file.wav
进行访问。这是因为在定位资产时,Sprockets/Dev-Rails知道要搜索/app/assets
文件夹及其子目录。
在生产,资产预编译(通常)发生在部署。目前,你的wav文件被复制到例如/public/assets/audio_file-<MD5 fingerprint>.wav
,可通过相关网址获得:/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
。