文件的絕對路徑與相對路徑


用DW寫HTML的時候,可以直接選擇到具體文件的路徑,現在改用了webstorm,只能選擇到與HTML文件同一目錄下的文件。就此整理一下文件的絕對路徑與相對路徑的區別。

1.絕對路徑

      先說在本地計算機上,文件的絕對路徑當然是指:文件在硬盤上真正存在的路徑。

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

      還有超鏈接文件位置,也屬於絕對路徑,例如http://www.img.net/img/icon.jpg 

      注意:有時候編好的頁面,在自己的計算機上瀏覽一切正常,但是上傳到Web服務器上瀏覽就很有可能不會顯示圖片了。因為靜態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”來說,是在同一個目錄的,那么只要這兩個文件還是在同一個目錄內,那么無論上傳到Web服務器的哪個位置,在瀏覽器里都能正確地顯示圖片。

     注意: 相對路徑使用“/”字符作為目錄的分隔字符,而絕對路徑可以使用“\”或“/”字符作為目錄的分隔字符。由於“img”目錄是“www”目錄下的子目錄,因此在“img”前不用再加上“/”字符。
在 相對路徑里常使用“../”來表示上一級目錄。如果有多個上一級目錄,可以使用多個“../”。假設 “test.htm”文件所在目錄為“ D:/wamp/www/test.htm”,而“icon.jpg”圖片所在目錄為“ D:/wamp/www”,那 么“icon.jpg”圖片相對於“test.htm”文件來說,是在其所在目錄的上級目錄里,則引用圖片的語句應該為:
      <img src="../icon.jpg" />   
假設 “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. )。所以接上面的例子,虛擬路徑可以寫成
        <img src="/img/icon.jpg" />  
 
整理一下
        “./” 代表當前目錄 <img src="./img/icon.jpg" />等同於<img src="img/icon.jpg" />
        “../” 代表上一級目錄
        “/”   當前根目錄,是相對目錄;<img src="/img/icon.jpg" />
        “~/”  Web 應用程序根目錄。ASP.NET 啟用了 Web 應用程序根目錄運算符 (~),在服務器控件中指定路徑時,可以使用該運算符。ASP.NET 會將 ~ 運算符解析為當前應用程序的根目錄。可以結合使用 ~ 運算符和文件夾來指定基於當前根目錄的路徑。 <asp:image runat="server" id="Image1" ImageUrl="~/Images/SampleImage.jpg" />在該示例中,圖像文件將從 Web 應用程序根目錄下的 Images 文件夾中直接讀取,無論該頁面位於網站的什么位置。
 
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM