首先,如果您還沒有意識到:您的新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
。