2013-08-28 158 views
1

我可能會比需要的更難,但我無法讓它工作。我的項目文件夾結構爲: -config指定HTML中目錄的路徑

-CSS

  • styles.css的

-images

  • background.png

-nbproject

-public_html

  • 的index.html

-test

在我的CSS,我想引用background.png文件。我認爲往上一層是由../表示,所以我必須:

background-image:url(../images/background.png); 

然後,在index.html文件,我想使用導入的CSS文件:

<link rel="stylesheet" type="text/css" href="../css/styles.css"> 

背景沒有顯示出來,所以我猜測我錯誤地指定了路徑。是../不是說「上升一級」的方式嗎?

我試圖使用此類應用背景圖像:

.body { 
background-image:url(./images/background.png); 
} 

然後,應用CSS如下:

<body class="body"> 
+0

'..'恐怖應該工作在網址爲正常。 CSS中的URL是相對於CSS樣式表而不是HTML頁面的基本URL來解析的,儘管在這個例子中不應該這樣做。你能發佈整個CSS規則嗎? –

+0

假設所有文件都位於一個文件夾內,以區分你可以製作圖像文件夾並將圖像放在那裏。如果index.html文件或其他文件位於同一文件夾中,理想情況下只需寫入images/background.png選擇圖像。你可以在這裏發佈你的代碼嗎? – AKIWEB

回答

0

您的問題是,所有文件應該在public_html文件夾中,公共html的同一級別中的所有其他文件夾不能被公衆訪問。

移動所有文件夾到你的CSS文件的public_html和變革路徑的index.html:

<link rel="stylesheet" type="text/css" href="css/styles.css"> 
+1

你剛剛公然竊取我的答案?大聲笑 – AlienWebguy

+0

如果一切都在public_html,那麼我不需要上去或下去,一切都會在同一個目錄中,對嗎?我試圖保持邏輯部分分離。 – user1154644

+0

我正在考慮發佈相同的答案只是爲了笑它 –

2
background-image:url(../images/background.png); <-- this is relative to styles.css 

<link rel="stylesheet" type="text/css" href="../css/styles.css"> <-- this is relative to your HTML file 

的CSS和圖像必須是內web根目錄下public_html

-nbproject

-public_html/

  • 的index.html

  • CSS/

    • styles.css的
  • 圖像/

    • 背景。PNG

-test

那麼你可以使用:

background-image:url(../images/background.png); 

<link rel="stylesheet" type="text/css" href="css/styles.css"> 
+0

不,因爲只有html文件可以訪問 – AlienWebguy

+1

注意到public_html是一個兄弟的CSS和圖像 – Maverick

1

../符號確實代表上升一個層次。但是這是針對網址的,而網絡服務器正在阻止外部讀者訪問文件系統中應該不可見的部分。

,你需要採取

  • 的index.html
  • CSS/
    • styles.css的
  • 圖像0​​
    • background.png

,並把public_html下

安全

這種機制此文件結構阻止人們做這樣

http://<your machine name>/../../../etc/passed etc 
+0

所以,如果我使用這種文件結構,我擺脫.. ../ – user1154644

+0

您不需要做任何事情,只需將所有文件放置在public_html目前的位置即可。服務器只爲該目錄或子目錄下的文件提供服務。您需要更改的唯一東西是在index.html文件中。即'css/styles.css'作爲鏈接 –