2011-09-29 60 views
3

鏈輪寶石緩存,即使在那些Ruby代碼可能會在每個編譯如何防止鏈輪緩存一個.erb文件?

例如評估不同.erb文件:foo.js.erb

var foo = <%= Kernel.rand %>; 

評估一次,緩存永遠。你如何防止像這樣的文件被鏈輪緩存?

回答

2

您可以將JavaScript分成庫(.js.erb或只是.js)和配置數據(例如您的var foo)。然後將所有庫代碼放在Sprocket的手中,並將您的配置置於正常的ERB視圖(可能嵌入在您的佈局中)。

您也可以通過單獨的控制器(/config.js也許)提供配置數據,如果這樣可以更好地滿足您的架構。

該方法通過將靜態庫與非靜態數據分離來避免您的整個問題。此外,這種方法與Rails 3.1資產管道非常吻合,您應該在生產部署之前預先編譯所有內容。

+0

是的,我不是在Rails應用程序。這只是HTML,JS和鏈輪。我找到了避免有js.erb文件的解決方法。但在Rails應用程序中,是的,你的解決方案看起來是正確的。 – ulver