首頁 >web前端 >html教學 >深入理解檔案的絕對路徑與相對路徑

深入理解檔案的絕對路徑與相對路徑

yulia
yulia原創
2018-09-21 16:11:273200瀏覽

我們在引用文件或圖片時,都會涉及到相對路徑和絕對路徑,如果不同明確區分他們,那麼很容易出錯。這篇文章就給大家文件的相對路徑和絕對路徑,有需要的朋友可以參考一下,希望對你有用。

用DW寫HTML的時候,可以直接選擇到特定檔案的路徑,現在改用了webstorm,只能選擇到與HTML檔案相同目錄下的檔案。就此整理一下檔案的絕對路徑與相對路徑的差異。

1.絕對路徑

先說在本機電腦上,檔案的絕對路徑當然是指:檔案在硬碟上真正存在的路徑。

例如這個路徑:D:/wamp/www/img/icon.jpg告訴我們icon.jpg檔案是在D磁碟的wamp目錄下的img子目錄。我們不需要知道其他任何資訊就可以根據絕對路徑判斷文件的位置。

還有超連結檔案位置,也屬於絕對路徑,例如http://www.img.net/img/icon.jpg 。

注意:有時候編好的頁面,在自己的電腦上瀏覽一切正常,但是上傳到網頁伺服器上瀏覽就很有可能不會顯示圖片了。因為靜態HTML頁面需要上傳到網站,而在網站的應用程式中,通常我們使用"/"來表示根目錄,/img/icon.jpg就表示photo.jpg檔案在這個網站的根目錄上的img目錄裡。但要知道,這裡所指的根目錄並不是你的網站的根目錄,而是你的網站所在的Web伺服器的根目錄。因為上傳到Web伺服器時,可能整個網站並沒有放在Web伺服器的D盤, 有可能是F盤或H盤。即使放在Web伺服器的D盤裡,Web伺服器的E盤裡也不一定會存在「D:/wamp/www/img」這個目錄,因此在瀏覽網頁時是不會顯示圖片的。這也是應用絕對路徑的風險。 

2.相對路徑

相對路徑,顧名思義就是自己相對與目標位置。

假設你要引入檔案的頁面名稱為test.htm,它存在一個叫www的資料夾裡(絕對路徑D:/wamp/www/test.htm),那麼引用同時存在www資料夾裡的「icon.jpg」檔案(絕對路徑D:/wamp/www/icon.jpg),同一目錄下相對路徑icon.jpg;如果檔案「icon.jpg」存在img文資料夾中(絕對路徑D:/wamp/www/img/icon.jpg),那麼相對路徑img/icon.jpg。

相對路徑可以避免上述根目錄不同的問題。只要將網頁文件及引用文件的相對位置與web伺服器上文件相對位置保存一致,那麼他們的相對路徑也會一致。例如上面的例子,「test.htm」 檔案裡引用了「icon.jpg」圖片,由於「icon.jpg」圖片相對於「test.htm」來說,是在同一個目錄的,那麼只要這兩個文件還是在同一個目錄內,那麼無論上傳到網頁伺服器的哪個位置,在瀏覽器裡都能正確地顯示圖片。

注意:相對路徑使用“/”字符作為目錄的分隔字符,而絕對路徑可以使用“\”或“/”字符作為目錄的分隔字符。由於「img」目錄是「www」目錄下的子目錄,因此在「img」前不用再加上「/」字元。

在 相對路徑裡常使用「../」來表示上一層目錄。如果有多個上一級目錄,可以使用多個“../”。假設“test.htm”檔案所在目錄為“D:/wamp/www/test.htm”,而“icon.jpg”圖片所在目錄為“D:/wamp/www”,那麼“icon.jpg”圖片相對於「test.htm」檔案來說,是在其所在目錄的上級目錄裡,則引用圖片的語句應該為:

假設“test.htm”檔案所在目錄為“D:/wamp/www/test.htm”,而“icon.jpg”圖片所在目錄為“D:/wamp/www”,那麼“ icon.jpg」圖片相對於「test.htm」檔案來說,是在其所在目錄的上級目錄裡的子目錄-「img」中,則引用圖片的語句應該是:

##< ;img src="../img/icon.jpg" />  

# 3.虛擬路徑 

將檔案上傳到遠端伺服器後,這些檔案駐留在伺服器本機目錄樹中的某一個資料夾。例如,在執行MicrosoftIIS的伺服器上,首頁的路徑可能如下所示:c:\Inetpub\wwwroot\accounts\users\jsmith\index2.htm此路徑通常稱為檔案的實體路徑。但是,用來開啟檔案的URL並不使用實體路徑。它使用伺服器名稱或域名,後接虛擬路徑( 這裡說一下虛擬目錄:虛擬目錄,是對Http訪問而言的,用戶在瀏覽網站或FPT時顯示的目錄結構。例如你設定了E:\Website為存取目錄,那麼E:\Website為虛擬目錄的根目錄;E:\Website\Image,就變成了\Image. )。所以接上面的例子,虛擬路徑可以寫成

  

整理一下

“./” 代表目前目錄等同於

# “../” 代表上一級目錄

 “/”   當前根目錄,是相對目錄;

“ ~/”  Web 應用程式根目錄。 ASP.NET 啟用了 Web 應用程式根目錄運算子 (~),在伺服器控制項中指定路徑時,可以使用該運算子。 ASP.NET 會將 ~ 運算子解析為目前應用程式的根目錄。可以結合使用 ~ 運算子和資料夾來指定基於目前根目錄的路徑。 在該範例中,映像檔將從Web 應用程式根目錄下的Images 資料夾中直接讀取,無論該頁面位於網站的什麼位置。

以上是深入理解檔案的絕對路徑與相對路徑的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn