2011-08-12 228 views
31

我有一個包含背景圖像的樣式表。CSS根目錄

background: url(../Images/myImage.png); 

問題是,來自不同目錄的頁面使用此css!

我的CSS文件位於CSS文件夾中,Image文件夾中的圖像以及我的html頁面位於許多不同的文件夾中,具體取決於它們的內容和網站的含義。

我的所有頁面都繼承了這個CSS,因爲它是MAIN主題。

上例中使用的路徑是相對路徑。顯然,這條路徑只適用於某些頁面。我所需要的是鏈接從ROOT文件夾的CSS中的圖像。因此,無論文件在文件夾結構中的哪個位置,每條路徑都是正確的!

我曾嘗試:

~/Images/myImage.png 
./Images/myImage.png 
/Images/myImage.png 
Images/myImages.png 

我不認爲存在一個根文件夾選擇......但我希望它:/

+0

只需每次使用絕對路徑,即。 http://example.com/Images/myImage.png – benhowdle89

+2

不需要絕對路徑,這不應該是***外部***樣式表的問題,因爲路徑總是相對於樣式表本身。您是直接將CSS代碼放在''中嗎? –

+0

@ benhowdle89不會,因爲當您更改域名或將其置於子域名中時,所有內容都將被打破。我更喜歡'/ path'方法。 – jackJoe

回答

41
/Images/myImage.png 

這必須是在你的根站點/子

http://website.to/Images/myImage.png

,它會工作

不過,我認爲它會像這樣工作,也

  • 圖像0​​
    • yourimage.png
  • 風格
    • 的style.css

的style.css:

body{ 
    background: url(../images/yourimage.png); 
} 
+0

這是否只適用於您的網站託管?我正在使用visual studio 2010在上傳前調試我的網站。 –

+1

@ AlexMorley-Finch:我不知道。也許是 – genesis

+1

@ AlexMorley-Finch任何絕對方法只有在服務器上託管,而不是在* quick *文件預覽(如在瀏覽器上預覽文件)時才起作用。 – jackJoe

2

例如目錄是這樣的:

Desktop > 
     ProjectFolder > 
         index.html 
         css > 
          style.css 
         images > 
          img.png 

你是在你的style.css,並要使用img.png作爲背景圖像,使用這個:

url("../images/img.png") 

適合我!

0

在CSS所有你所要做的就是把url(logical path to the image file)

5

我使用相對路徑解決方案,

./../../../../../images/img .png

每個../會帶你一個文件夾向上。希望這可以幫助..

+0

我一直在尋找這個,它解決了我的問題!謝謝! – Dozer789

+3

使用更好/../ – Eike

+2

要小心,服務器安全規則可能會禁止一個過長的../../../序列 –

0

這個問題,「../」意味着加強(父文件夾)鏈接"../images/img.png"將無法​​正常工作,因爲當您使用ajax像數據從服務器傳遞到網站。

你所要做的就是點圖像的位置,「./」,那麼第二個文件夾(在這種情況下,第二個文件夾是‘圖像’)

url("./images/img.png") 

,如果你有這樣的文件夾根

root -> content -> images

然後使用url("./content/images/img.png"),記住你的形象將在編輯器窗口中不可見,但是當它用ajax傳遞到瀏覽器就會顯示。

3

點擊here爲好解釋!

所有您需要了解相關的文件路徑:

以「/」返回到根目錄,並開始從那裏開始

與「../」移動一個目錄開始向後並從那裏開始

用「../../」移動兩個目錄開始向後,並開始在那裏(等等...)

要前進,只需從第一個子目錄開始,並繼續前進