2010-10-03 70 views
13

我想我們的映像部署到一個CDN。目前,CSS具有相對於我們網站上圖片的路徑。這些路徑需要支持CDN映像位置。有沒有人有關於如何做到這一點的建議?圖像路徑來支持CDN

或者,如果任何人有部署到CDN一個很好的教程。


這就是我最終完成這個的結果。

  1. 我用SASS - http://sass-lang.com/
  2. 我有一個名爲cdn.scss與像$ IMAGE_PATH內容混入: 「/圖片/」;
  3. 導入混入在SASS風格@import 「cdn.scss」
  4. 更新圖像路徑爲這樣:背景:網址($ IMAGE_PATH + 「image.png」);
  5. 在部署我更改mixin.scss的$ IMAGE_PATH變量,然後重新運行青菜

UPDATE

我們使用bash更新文件中的_cdn

cat > preprocess/sass/_cdn.scss <<EOT 
\$image_path: "//CDN_URL/"; 

示例代碼.scss

$image_path: "/public/images/"; 

然後它在默認情況下工作在本地,但對生產推,我們運行bash腳本使用CDN位置

+0

因爲我已經改變了cdn.scss文件是_cdn.scss所以它不輸出文件,但只作爲一個mixin。 – jhanifen 2013-02-11 04:13:28

回答

16

也許最簡單的事情將是對CDN承載您的圖像和CSS文件都進行更新。你的CSS文件中的圖像路徑是相對於CSS文件本身的,所以你不需要改變你的CSS。

如果這不是一種選擇,你堅持把完全合格的URL在你的樣式表。現在,如果你真的想,你可以動態地生成你的CSS文件,並執行一些替換,所以你實際上不必在你的工作表中硬編碼CDN。

+0

我們不能有相對的圖像路徑。我們決定使用編譯後的CSS SASS作爲樣式表和我們在部署上運行的腳本來更改SASS變量。但是對於大多數情況你的答案是正確的。 – jhanifen 2010-10-12 19:00:30

+1

@jhanifen尼斯。你能分享更多關於這個腳本如何改變SASS變量的更多細節嗎?它是一個bash腳本,還是其他的? – FloatingRock 2013-07-12 06:09:40