Asset Pipeline 說明
在以前的Rails版本中,所有靜態資源都放在public文件夾的子文件夾中,例如images,javascripts和stylesheets。使用Asset Pipeline後,建議把靜態資源放在app/assets文件夾中。這個文件夾的文件會經由Sprockets中間件處理。
如果文件不需要經過伺服器編碼處理可以直接放在public下
Assets 指的是JavaScript、Stylesheets和圖檔等靜態檔案,可以將靜態檔案依需求放在不同目錄下,Rails會幫你組合並壓縮起來並且加快瀏覽器的讀取時間。壓縮意思就是將你寫很多行的js擋或是scss sass檔案給變成一行檔案容量會變得更小。
而Assets的位置在app/assets/下
關於Assets相關的兩個檔案位於
app/assets/javascripts/application.js
app/assets/stylesheets/application.css
並且在 .erb檔案(view) 使用Helper
例如放在app/assets/images下的圖片使用方式
<%= image_tag("rails.jpeg") %>
編譯出來的網址可以用HTML代碼看到後面會帶一串亂碼來保證存取的檔案是最新的避免存取到cache資料 Git每次的commit,都會有一個摘要。不同的摘要就代表commit內容不同.Git用這個摘要值當作每次commit的唯一識別ID。 在Rails中,Asset pipeline會將CSS和JavaScript壓縮,檔名就是透過散列函數產生的。這是因為瀏覽器會緩存靜態檔案,如果CSS / Javascript內容有修改的話,用戶瀏覽器可能不知道有 新版而使用到舊的CSS / JS檔案。但是因為檔名用了散列函數的關係,內容一改檔名就會變得不一樣,那麼瀏覽器就會下載新的檔案了。