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