url路徑其實很簡單,不過在asp.net2.0裡也設計到,所以天天在這裡羅嗦一下,把路徑的使用簡單概括一下:
在使用css
樣式時,設計到對路徑的引用,這裡以
為例,說明路徑的常規處理。
一般而言,鏈結路徑的表達有三種方式:絕對路徑、相對路徑和基於根目錄的路徑。例如假設當前應用程式的結構如圖
3-5,它的**為
,下面就介紹鏈結路徑的表達方法。
(1)絕對路徑
使用完整的
url位址,這種鏈結路徑就是絕對路徑,其特點是路徑同鏈結站點的源點無關。如圖
在圖3-5
裡,如要建立指向
about
目錄下的
about.aspx
,則鏈結位址為:
< a href=」/about/
about.aspx」>
而建立指向
database.aspx
文件的路徑為:
< a href=」/product/other
/database.aspx」>
使用絕對路徑的最大缺點是不利於移植,例如現在站點的位址為
,如果有一天站點更該
,則所有的鏈結位址都失效,需要進行更改,難以維護。
(2)相對路徑
為了避免絕對路徑的缺陷,可以使用相對路徑。相對路徑可以表達源端點和目標端點之間的相互位置關係。具體可以範圍如下兩種情況:
l如果鏈結中,源端點和目標端點在同乙個目錄下,則在鏈結中只需要指明目標端點的文件名稱就可以了。例如在圖
3-5中,如果希望在
about.aspx
文件中建立指向
develop.aspx
的鏈結,則可以寫成如下:
l如果在鏈結中,源端點和目標端點不位於同乙個目錄下,則只需要將目錄的相對關係表達出來就可以了。如果鏈結指向的文件沒有位於當前目錄的子級目錄中,則可以利用
」..」
符號來表示當前的父目錄,多個
..符號可以表示根高的父級目錄,從而構建出目錄的相對位置。例如如果希望在
about.aspx
文件中建立指向位於
product
目錄中的
software.aspx
文件的鏈結,則可以用如下的**:
如果希望在
database.aspx
文件中建立指向
about.aspx
文件的鏈結,則可以使用錄如下的路徑
利用相對目錄的好處在與只要站點的結構和文件不變,鏈結就不會出錯,然而如果你移動了檔案,或者相對關係發生變化,則就會發生錯誤。
(3)基於跟目錄的路徑
基於跟目錄的路徑可以看成是絕對路徑和相對路徑之間的一種折衷,在這種表達方式下,所有的路徑都是從站點的跟目錄開始的,它同源端點位置無關。
例如在圖
3-5時,建立指向
about
資料夾下的
about.aspx
的鏈結為
建立指向
database.aspx
的鏈結為
另外,如果指向的是主頁可以寫成
或者注意:判斷乙個路徑是相對路徑還是相對於跟目錄的路徑就看鏈結位址是否是從
"/"開始
(4)asp.net的「~」路徑
在asp.net
裡增加了乙個新的表達方法「~」,「~」表示的路徑是當前應用程式的跟目錄。「~」和上面介紹的「
/」最大的區別是由伺服器進行動態解釋。由於
」~」是相對於應用程式的根目錄,所以利用它可以簡化路徑的設定,在某些情況下似乎還必須使用該控制項,例如如下使用了乙個
treeview
控制項(具體以後會介紹)
rootnodestyle-imageurl="~/images/xp/computer.gif"
parentnodestyle-imageurl="~/images/xp/folder.gif"
leafnodestyle-imageurl="~/images/xp/ie.gif"
collapseimageurl="~/images/xp/minus.gif"
expandimageurl="~/images/xp/plus.gif"
noexpandimageurl="~/images/xp/blank.gif"
runat="server">
面顯示了它的執行結果:
圖3-6 treeview
控制項執行結果圖
在這個執行結果裡可以看到
news
和citylinks
聯結器都使用了資料夾
folder.gif
,這是通過
parentnodestyle-imageurl="~/images/xp/folder.gif"
進行設定的。在這裡使用相對路徑是不行的,因為在執行時,
news
和citylinks
在不同的級別,無法使用相對路徑設定,如果使用絕對路徑這裡也算乙個不錯的選擇,如果使用相對於根目錄的路徑,如果您使用的虛擬主機的話,就會發現有時你並得不到相對於根目錄的路徑,所以這裡使用相對於應用程式的根目錄確實是乙個最好的做法。這個「~」就會由
.net
在執行時自動解析的。
(5)在樣式中使用位址注意的問題
可以在樣式中引用影象,該影象的引用使用相對與樣式檔案的引用,仍然以圖
3-3為例,我在
style
下建立了乙個
stylesheet.css
檔案來存放樣式,該樣式的內容非常簡單如下:
td.mybg
你可以看到我將
td元素重新定義增加了背景
bg.gif
。這裡的
bg.gif
來自於style/images
資料夾下的
bg.gif
,這樣如果在首頁引用時,可以正確的顯示,如下:
this is a test
然而這和後面介紹主題裡使用影象時正好相反。
主題還可以包含外觀檔案中的控制項定義所引用的影象。外觀中對影象的引用應使用
theme
目錄下的影象資料夾的相對路徑,以便外觀檔案和影象可以一起移到其他應用程式中。在執行時,會重新設定影象的路徑,以使引用相對於目標頁中的控制項,而不是相對於外觀檔案。所以請務必區分這一點。
(6)確保路徑指向檔案的唯一性
在用asp.net
處理路徑時,需要確保檔案的唯一性,否則將發生錯誤。特別是在使用使用者控制項時,如果路徑引用的過於複雜,儘管理論上應該正確,但是實際執行時可能得到預想不到的錯誤,以圖
3-7為例:
圖3-7 myblog
結構圖在
ui的目錄學有乙個
control
資料夾,然後在該資料夾下有乙個
calendar.ascx
使用者控制項,
page.ascx
使用者控制項引用了該
calendar.ascx
的**如下:
... ...
在根目錄下有乙個
default.aspx
首頁,它又引用了
page.ascx
使用者控制項,如下:
... ...
同時跟目錄下也有乙個
control
資料夾和
calendar.ascx
檔案。那麼儘管上面**表面上看應該沒有問題,但是由於使用者控制項層層巢狀引用,使得實際執行時,系統區分不了到底使用哪乙個
calendar.ascx
而發生錯誤,此時乙個較為簡單的解決方法是,所以的路徑都使用相對於跟目錄的引用就能夠解決。
關於URL路徑的基本使用
url路徑其實很簡單,不過在asp.net2.0裡也設計到,所以天天在這裡羅嗦一下,把路徑的使用簡單概括一下 在使用css 樣式時,設計到對路徑的引用,這裡以 為例,說明路徑的常規處理。一般而言,鏈結路徑的表達有三種方式 絕對路徑 相對路徑和基於根目錄的路徑。例如假設當前應用程式的結構如圖 3 5,...
關於絕對路徑 相對路徑和URL
引言 由於很多使用者在使用我的或其他程式設計師的cgi php是把絕對路徑 相對路徑和url的概念混淆,導致遇到許多不必要的麻煩,所以我決定寫此文為需要的朋友解惑。通常我們在安裝使用php和cgi時通常都會遇到 絕對路徑 和 相對路徑 這兩個概念,要熟練的操作計算機的目錄戶對於 絕對路徑 和 相對路...
關於git的基本使用
首次使用git需要對git進行初始化,而git init便是git的初始化命令,在需要建立版本依賴的資料夾下開啟git bash here,輸入git init命令,在原先的資料夾下出現 git資料夾 新增到本地倉庫 git add git commit 你想提交的資訊可以寫在這裡 必填項 提交到遠...