2011-04-28 140 views
67

我有一個生產和開發服務器。 問題是目錄結構。如何在css網址中使用相對/絕對路徑?

發展:

  • http://dev.com/subdir/images/image.jpg
  • http://dev.com/subdir/resources/css/style.css

生產:

  • http://live.com/images/image.jpg
  • http://live.com/resources/css/style.css

怎樣纔可以有一個style.csscss這兩臺服務器上使用相同的路徑,background: url屬性的文件夾?有相關路徑可以使用的技巧嗎?

回答

99

網址是relative to the location of the CSS file,所以這應該爲你工作:

url('../../images/image.jpg') 

相對URL去兩個文件夾背,然後到images文件夾 - 它應該爲這兩種情況下工作,只要結構是一樣的。

http://www.w3.org/TR/REC-CSS1/#url

部分解釋URL相對於樣式表的來源,而不是相對於文檔

+0

將這項工作如果我必須去2步回(更新答案)URL(../../圖像/ image.jpg的)? – danidacar 2011-04-28 08:13:31

+0

@anothershrubery - 對不起,我的第一個例子有缺陷 – danidacar 2011-04-28 08:14:59

+0

@danip - 它應該可以工作,但是你沒有兩個步驟來自'http:// domain.com/css/style.css'。我不知道在那裏可以做些什麼... **編輯:** - 是的,它應該與更新的結構一起工作,我已經更新了答案(只是另一個'../',似乎)。 – Kobi 2011-04-28 08:18:19

2

我有同樣的問題......每次我需要時間發佈我的CSS ..我必須做一個搜索/替換..和相對路徑wouldnt工作要麼因爲相對路徑不同從開發到生產。

終於厭倦了搜索/替換,我創建了一個動態的CSS,(例如www.mysite.com/css.php)它是一樣的,但現在我可以在CSS中使用我的PHP常量。 somethig像

.icon{ 
    background-image:url('<?php echo BASE_IMAGE;?>icon.png'); 
} 

,它不是一個壞主意,讓動態的,因爲現在我可以使用YUI壓縮機沒有失去我的開發服務器上的原始格式壓縮。

祝你好運!

+9

問題上沒有'php'標籤! OP可能根本不使用PHP。 – Bazzz 2011-04-28 08:21:55

+6

只是一個例子..你可以使用php,asp,jsp ..這個想法是一樣的 – pleasedontbelong 2011-04-28 08:26:04

+2

它也可以是靜態的。 – jcuenod 2015-09-06 03:14:18

4

個人而言,我會在.htaccess文件中修復此問題。你應該有權訪問它。

定義你的CSS網址爲這樣:

url(/image_dir/image.png); 

在你.htacess文件,提出:根據網站上

Options +FollowSymLinks 
RewriteEngine On 
RewriteRule ^image_dir/(.*) subdir/images/$1 

RewriteRule ^image_dir/(.*) images/$1 

相關問題