我們在引用文件或圖片時,都會涉及到相對路徑和絕對路徑,如果不同明確區分他們,那麼很容易出錯。這篇文章就給大家文件的相對路徑和絕對路徑,有需要的朋友可以參考一下,希望對你有用。
用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 會將 ~ 運算子解析為目前應用程式的根目錄。可以結合使用 ~ 運算子和資料夾來指定基於目前根目錄的路徑。
以上是深入理解檔案的絕對路徑與相對路徑的詳細內容。更多資訊請關注PHP中文網其他相關文章!