指南針使用chunky_png渲染精靈。它在文件末尾添加一個哈希以強制緩存下載新的圖像精靈。有沒有辦法將這個緩存關閉?如何從Compass生成的精靈圖像文件名中刪除哈希值?
回答
不幸的是asset_cache_buster :none
選項不會禁用添加散列到文件名末尾。
就像我幾年時間前寫(法語),指南針也沒有辦法禁用緩存哈希剋星,但我建議a solution。
在您的配置文件(如config.rb
)加入下面幾行:
# Make a copy of sprites with a name that has no uniqueness of the hash.
on_sprite_saved do |filename|
if File.exists?(filename)
FileUtils.cp filename, filename.gsub(%r{-s[a-z0-9]{10}\.png$}, '.png')
end
end
# Replace in stylesheets generated references to sprites
# by their counterparts without the hash uniqueness.
on_stylesheet_saved do |filename|
if File.exists?(filename)
css = File.read filename
File.open(filename, 'w+') do |f|
f << css.gsub(%r{-s[a-z0-9]{10}\.png}, '.png')
end
end
end
現在,使用compass clean
刪除生成的文件並重新啓動與compass compile
彙編。
你獲得,例如images/icons-scb1e5456d5.png
文件和一個images/icons.png
文件。在樣式表中,所有對精靈的引用現在指向沒有散列的版本。
一定要保持文件中有提供優化的指南針編譯時間的哈希值。
感謝你們,我個人選擇使用FileUtils.mv代替FileUtils。cp,這樣hold文件不會掛起 – isNaN1247 2012-03-15 21:23:33
在grunt-contrib-sass中使用它似乎不會觸發on_stylesheet_saved塊,從而使css背景屬性引用帶有散列的文件而不是未散列的文件。使用它與grunt-contrib-compass確實觸發了它。 – yuvilio 2013-06-22 20:52:34
@yuvilio這個鉤子是由Compass提供的,並不存在於Sass中。 Thx提醒! – piouPiouM 2013-06-22 23:27:18
集asset_cache_buster :none
在config.rb爲documented in their configuration reference
這需要更多upvotes – 2013-03-27 22:54:02
應該是被接受的答案。 – 2013-09-16 21:30:58
此解決方案不會阻止Compass將哈希作爲後綴添加到精靈文件名中給定問題中的問題是什麼。 – s3m3n 2013-11-05 16:06:54
我還沒有與精靈測試,但是這一點也適用replace-text-with-dimensions
,例如:
config.rb:
# disable asset cache buster
asset_cache_buster do |http_path, real_path|
nil
end
更好的發現的解決方案可以在另一個發現similar question。
這是更好,因爲:
- 腳本生成精靈之前改名 - 而不是之後。
- 因爲點1沒有必要幾乎不變
.css
自動生成的文件。它從頭開始以正確的名字生成。 - 接受的解決方案,使
cp
與哈希生成精靈(複印件)和它停留在文件系統/回購爲重複這是相當糟糕的。此外,它仍然被視爲與本地回購更改,所以你犯兩個相同的文件。解決方案可以通過mv
更改生成的散列文件名來清除,但在這種情況下,每次在.scss
文件中使用它時都會生成精靈,因此更糟糕。
- 1. 在Middleman中使用Compass生成的精靈,如何從構建中刪除精靈源文件?
- 2. 無法刪除舊精靈的Sass/Compass
- 3. 如何從哈希表中刪除值?
- 4. 如何使用Compass從多個文件夾生成一個精靈?
- 5. 從精靈圖像生成動畫?
- 6. 精靈哈希表,結構
- 7. 如何從Python中的.txt文件生成checksum.dat哈希文件
- 8. 如何從一些組件精靈表生成動畫精靈
- 9. 如何在J2ME中生成哈希值?
- 10. 在AS3中從位圖生成精靈
- 11. 刪除基於哈希鍵名散裝Redis的哈希值
- 12. 如何從Perl中刪除哈希鍵?
- 13. 從URL中刪除哈希值
- 14. 從URL中刪除哈希值window.location.hash
- 15. 從文件生成MD5哈希
- 16. 如何刪除圖像精靈中的邊框
- 17. 爲動態圖像生成CSS精靈
- 18. 從圖像精靈,CSS和PHP生成圖像
- 19. 如何爲位於Http Url的文件生成MD5哈希值?
- 20. 如何使用ActionLink生成哈希值
- 21. Python 3如何從stdin上的文件生成md5哈希?
- 22. 如何讓精靈從精靈表變成另一個精靈?
- 23. 在MJQ中如何從URL中刪除哈希值?
- 24. 如何從時間戳生成哈希?
- 25. MYSQL從SHA1生成登錄哈希值
- 26. 指南針doens't在圖像名稱後重新生成精靈
- 27. 如何從不同精靈尺寸的精靈圖表中獲取子圖像?
- 28. 如何在java中生成任何文件的哈希?
- 29. 如何從字符串中刪除哈希值?
- 30. 如何從url angular app中刪除哈希值?
的精靈哈希是不是瀏覽器的緩存無效(儘管它有效果),但這樣指南針可以識別生成的文件。 – sam 2014-09-19 16:30:55