母版頁和相對路徑

2021-09-06 11:05:57 字數 861 閱讀 3797

乙個經常讓開發人員疑惑的問題是母版頁是如何處理相對路徑的。如果你使用的是靜態文字,這一問題不會困擾你。不過,如果你加入了

當你把母版頁和內容頁放在不同的目錄時,問題就發生了。把母版頁和內容頁分放到不同的目錄,這是大型**推薦使用的最佳實踐。實際上,微軟建議你在專門的資料夾裡儲存所有的母版頁。不過,如果你不夠小心,使用相對路徑時會帶來問題。

例如,假設你把母版頁放在乙個叫做masterpages的子資料夾裡,並在母版頁裡加入了如下的

假設檔案\masterpages\banner.jpg存在,這看起來是行得通的。甚至在visual studio設計環境會出現。但是,如果你在另乙個子資料夾裡建立了乙個內容頁,路徑就會被解釋成相對於那個資料夾。如果檔案在那裡不存在,就會得到乙個破損的鏈結而看不到。更糟的是,如果有一幅具有相同檔名的另外乙個,你會不經意地得到一幅錯誤的。

這樣的問題之所以會發生,是因為

要解決這一問題,你可以預先把url寫成相對於內容頁面的位址。不過這會帶來混淆,限制母版頁使用的範圍,並且產生在設計環境裡不正確顯示母版頁的負面效應。

這個解決辦法會起作用是因為asp.net根據這一資訊建立乙個htmlimage伺服器控制項。這個物件在母版頁的page物件例項化後建立,此時,asp.net把所有路徑解釋為相對於母版頁的位置。你可以使用同樣的技術來修復標籤對其他頁面的鏈結。

你還可以使用根路徑語法,並用"~"字元作為url的開頭。例如,下面這個

遺憾的是,這種語法只對伺服器端控制項有效。如果你要對普通的html產生同樣的效果,你需要在鏈結裡包含網域名稱的完整的相對路徑。這樣的html**難看且不可移植,所以不推薦使用。

母版頁和相對路徑

乙個經常讓開發人員疑惑的問題是母版頁是如何處理相對路徑的。如果你使用的是靜態文字,這一問題不會困擾你。不過,如果你加入了 當你把母版頁和內容頁放在不同的目錄時,問題就發生了。把母版頁和內容頁分放到不同的目錄,這是大型 推薦使用的最佳實踐。實際上,微軟建議你在專門的資料夾裡儲存所有的母版頁。不過,如果...

母版頁和相對路徑

乙個經常讓開發人員疑惑的問題是母版頁是如何處理相對路徑的。如果你使用的是靜態文字,這一問題不會困擾你。不過,如果你加入了 當你把母版頁和內容頁放在不同的目錄時,問題就發生了。把母版頁和內容頁分放到不同的目錄,這是大型 推薦使用的最佳實踐。實際上,微軟建議你在專門的資料夾裡儲存所有的母版頁。不過,如果...

母版頁和相對路徑

乙個經常讓開發人員疑惑的問題是母版頁是如何處理相對路徑的。如果你使用的是靜態文字,這一問題不會困擾你。不過,如果你加入了 標籤或者指向其他資源的html標籤,問題就可能發生。當你把母版頁和內容頁放在不同的目錄時,問題就發生了。把母版頁和內容頁分放到不同的目錄,這是大型 推薦使用的最佳實踐。實際上,微...