我想通過一個js文件在資產管道訪問的圖像,但是我收到一個404錯誤,圖像不存在。我的理解是,Rails的指紋和預編譯/預加載圖像/資產到瀏覽器,所以文件路徑「imageName.png」成爲東西「imageName-uniqueFingerprint.png」的效果,從而使原來的路徑不再有效。 (糾正我,如果我誤解)圖像資產可用於CSS文件但不是JS文件 - 爲什麼?
我不明白的是爲什麼我可以在CSS文件中使用原始路徑,例如:background: url('nebula_small.png')
和圖像檢索得很好,但是如果我嘗試使用JS文件中的相同路徑我得到了404.我認爲Assets目錄中的所有內容都是由Rails預編譯的,因此我認爲它們可以平等地訪問相應的資源。
我可以寫一個輔助方法(每this StackOverflow suggestion)的digest_path到原來的路徑關聯,但我不知道是否有一些方法,輕易地放棄了JS文件到CSS文件具有圖像相同的訪問。
仍然不熟悉Rails的,所以如果你需要澄清或我措辭不好這個,我向你道歉。謝謝您的時間。
任何機會的路徑,在JS文件圖像需要使用[主HTML文件位置的根(HTTP://計算器。 COM /問題/ 2188218 /相對路徑-在JavaScript的功能於一個外部的文件),而在CSS文件的路徑是[相對於CSS文件(http://stackoverflow.com/questions/5815452/如何使用的相對絕對路徑功能於CSS-URL)的?即如果你使用絕對路徑,你的問題仍然存在嗎? – ghybs
你不能在css中實際使用原始路徑。當你使用像'背景:圖像URL(「image.png」)',鏈輪將指紋添加到它(在生產中只) –
@ghybs我剛試過了,也不行,但一個好主意。 –