2012-06-15 19 views
3

我們使用Compass轉爲Sprite圖像(將許多圖像合併爲一個文件)。如果我爲images/common/dir創建一個Sprite,Compass將創建一個名爲common-sff832da50b.png的文件。每次重新生成Sprite時,Compass都會生成一個新的後綴。如果我將這些Sprite圖像保留在app/assets/images中,我會在public/assets中看到common-sff832da50b.png和common-sff832da50b-4a575c6c5d24895370db5ee7e7648d3a.png。由於Compass管理這個文件,我沒有理由讓Asset Pipeline「管理」它。我可以通過配置Compass將這些精靈直接編譯成公共/資產來繞過資產管道。這是否有缺點?我們是否應該將Sprited圖像保留在資產管道之外?

也有理由認爲,我應該確保編譯成Sprites的「源」圖像不應該存儲在app/assets/images中,因爲Asset Pipeline也會「管理」它們。請記住,這些「源」圖像不被使用。該應用在開發和生產中使用Sprites。據我所知,Asset Pipeline沒有理由將原始文件和原始摘要複製到公共/資產中。我們只在Sprite中使用它。這聽起來合理嗎?有缺點嗎?

假設:Rails 3.2。*

謝謝!

+0

更新:我們做了一個清單。 995個圖像被「編譯」成7個精靈。由於資產管道也指紋這些(和精靈文件),這意味着部署了2000個文件,只能被忽略。這包括複製的6.7G的1.8G。這是否會改變你的想法? –

回答

2

您可以將原始圖像移動到管道外的任何文件夾。或不。除了預編譯所需的時間以外,它並沒有太大的區別,並且文件在永遠不會引用的公用文件夾中浮動。

你必須把圖像粘貼到某個地方,從Rails的觀點來看,這似乎阻力最小。

關於指紋,您不需要指紋文件作爲指南針(如您所說)指的是它創建的文件。

雖然直接寫入+/public/assets +可能存在問題,具體取決於您部署項目的方式。

如果使用默認的Capistrano任務,assets文件夾是從+ shared/assets +中鏈接的,所以您需要在符號鏈接發生後編譯sprite。

+0

我們得出了同樣的結論。每次我看到這些文件被管理和複製時,我的OCD balks只能被忽略,但似乎沒有更好的選擇。 –

+1

我已訓練自己只是不看文件夾。再說一遍自己 - 不要看着文件夾。 ;-) –

相關問題