熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

淺談網頁中各種鏈接引用方法

2013-11-13 10:14:55  來源: .NET編程 

  在網頁中的引用(比如引用cssjsimg等對象)總的來說可以分為以下幾種方式

  view sourceprint?<%第一種方法%>

  <link rel=stylesheet type=text/css />

  <%第二種方法%>

  <link rel=stylesheet type=text/css />

  <%第三種方法%>

  <link rel=stylesheet type=text/css />

  <%第四種方法%>

  <link <%=ResolveUrl(~/sitecss)%> rel=stylesheet type=text/css />

  下面我在分析一下這四種方法的優缺點

  方法一    /url

  用法

  這個是從域名頂部開始查找文件

  如果你的頁面是x

  引用的css文件時/css/sitecss

  最後的css路徑就是

  也就是說它會忽略 後面的所有東西然後加上自身

  局限性

  如果你的網站是一個子網站比如在IIS下的一個網站中建立應用程序(而不是直接建立一個網站)

  那麼你網站的根目錄就會是

  問題來了因為引用都是根據url來判斷的它根本無法區別你網站的根目錄是什麼所以解析出來的地址也會錯誤會把website都忽略掉

  方法二  url

  用法

  這個是相對的路徑

  如果你的頁面是x

  引用的css文件時css/sitecss

  最後的css路徑就是

  也就是說它會去除最後一個/後的東西然後加生自身

  局限性

  這個的局限性有

  第一如果你在masterpage中做了一個引用但是內容頁卻在不同的文件夾最後的引用是根據內容頁來判斷的所以就出錯了

  第二如果你用了UrlRewrite那url和實際文件系統是不同的那很明顯也會出錯

  方法三     /url

  用法

  其實這個和方法二一樣/ 是返回上一級的意思

  如果你的頁面是x

  引用的css文件時/css/sitecss

  最後的css路徑就是

  局限性

  局限性和方法二一樣

  另外IIS默認不允許用 / 來返回父級所以要配置一下

  方法四     <%=ResolveUrl(~/sitecss)%>

  用法

  這個用法和方法一差不多但是有個好處就是可以避免方法一的局限性

  因為這個是靠服務器解析出來的而不是在客戶端執行的所以能識別子網站

  如果你的頁面是x

  引用的css文件時<%=ResolveUrl(~/sitecss)%>

  最後的css路徑就是

  局限性

  這個方法是萬能的但是也不是完美的

  因為要靠服務器解析所以當然不能所見即所得啦還有就是要多打那麼多字很麻煩


From:http://tw.wingwit.com/Article/program/net/201311/13036.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.