2013-08-17 32 views
0

我有一個JavaScript文件,它使用從導軌模型生成的JSON文件,並由控制器放入頁面。運行時Rails資產管道路徑Javascript

在這個JSON文件中有許多節點,每個節點都有一個需要轉換爲圖像路徑的id。在發展中,我知道那裏的圖像會這樣我就可以通過DO循環:

var imagePath = 'some/path/'+node.id+'.png'; 

但是我使用的指紋,所以就臨時和生產我需要一種方法來解決一個指紋的路徑此路徑。

到目前爲止,我可以看到我需要公開地圖路徑 - 指紋的路徑,這樣我就可以有效地做這樣的事情:

var fingerprintedImagePath = fingerprintedPathsMap[imagePath]; 

爲了做到這一點,我需要訪問清單或什麼Rails將清單存儲在我的控制器內或視圖內(在.erb標記內)。

如何訪問指紋文件列表?或者是否有更好的方式讓JavasScript訪問只能在客戶端知道的資產路徑。

回答

1

不完全滿意這個方法,但這裏是我有:

注:Gon gem將對象到DOM,這樣的JavaScript可以訪問它們。

在我的控制器:

gon.asset_host = Rails.configuration.action_controller.asset_host || '' 
gon.manifest = Rails.configuration.assets.digests 

在我的JavaScript:

var manifest = gon.manifest; 
var fileName = panelName+'_'+layerName+'.png'; 
var image_path = 'resources/comics/'+comicName+'/'+fileName; 
var hosted_path = image_path; 
if(gon.asset_host) { 
    var fingerprinted_path = manifest[image_path]; 
    hosted_path = gon.asset_host+'/assets/'+fingerprinted_path; 
}else{ 
    hosted_path = '/assets/'+hosted_path; 
} 
相關問題