絕對路徑與相對路徑

對於剛開始學做網頁,或是不會做網頁但想要做一份網路履歷的人而言,時常犯的一個錯誤就是在自己的電腦中插入圖片,卻發生上傳之後無法存取圖片的情形。因此本篇要說明的就是關於網路路徑的設定問題。

我們上地理課的時候知道有所謂的絕對位置和相對位置。絕對位置可能是你家裡的地址,而相對位置則是你家左右的鄰居。電腦裡的位置因為不是真正的實體位置,所以我們稱作「路徑」,只是方便人們找到想要的資料而已。路徑一樣有分成絕對路徑與相對路徑。在不同種類的作業系統或是程式語言中,絕對路徑和相對路徑可能都會有不同的表現方式或是語法。

Windows與MS-DOS系統的路徑表示

當你開啟Windows系統中的檔案總管或是在安裝軟體時,你可能會看見「C:\Program Files\」的路徑,這就是Windows的絕對路徑,它可以用來表示你電腦中的檔案或資料夾位置。在Windows系統中因為都是使用滑鼠控制電腦,所以幾乎不會有用到相對路徑的時候,除非你需要寫程式。

不過,如果你開啟附屬應用程式>命令提示字元時(MS-DOS模式),也許就會需要用到相對路徑了。它的相對路徑是「下一層資料夾的名稱\」或是「..\」表示上一層的資料夾。

網際網路路徑表示

網路上的路徑表示和Windows很像,不過它的鈄線是「/」。當你看到一個位置是寫「http://網址或IP/」,表示一個網路的絕對路徑,這也是為什麼像Yahoo、Google各家的網址都是以 http:// 開頭。不過在我們寫網頁的時候,通常會使用相對位置來表示,它的表示方式和MS-DOS是大同小異的。

上面這張圖是這個網站目錄的截圖,如果我現在正在編輯的檔案是「index.php」,我要連結同一層的檔案就直接打檔名(含副檔名),例如「readme.html」。如果要連結上一層的檔案就打「../index.html」。如果要連結下一層的檔案就要先打目錄再打檔名,例如「wp-content/index.html」。

檢查網頁編輯時的路徑

當你打開你的網頁程式碼,如果有任何連結是「C:/」或是「D:/」等等電腦磁碟機代號開頭,網友是一定讀不到的。要讓網友讀取到檔案,一定要把你的網頁或圖片等檔案上傳到”網路上的伺服器”才行(把檔案丟到提供空間服務的電腦裡)。這個時候你的檔案一定會產生一個 http:// 開頭的網址來存取。然後,當你編輯A網頁要讀取B檔案時,只要你的檔案是放在同一個伺服器中(等於同一台電腦中的意思),你就可以利用相對路徑來存取檔案。用相對路徑的好處是,如果有一天網址換了,你的網頁路徑也不需要修改。

例如本篇文章的位置是在 http://www.moke.tw/wordpress/computer/web/ 下面,如果我要設定一個連結回到首頁,我可以直接打絕對路徑 http://www.moke.tw/ 或是輸入相對路徑 ../../ 來回到首頁(../表示回上一層computer/,所以../../表示回到wordpress/)。