日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

母版页和相对路径

發(fā)布時(shí)間:2024/9/5 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 母版页和相对路径 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一個(gè)經(jīng)常讓開(kāi)發(fā)人員疑惑的問(wèn)題是母版頁(yè)是如何處理相對(duì)路徑的。如果你使用的是靜態(tài)文字,這一問(wèn)題不會(huì)困擾你。不過(guò),如果你加入了<img>標(biāo)簽或者指向其他資源的HTML標(biāo)簽,問(wèn)題就可能發(fā)生。

當(dāng)你把母版頁(yè)和內(nèi)容頁(yè)放在不同的目錄時(shí),問(wèn)題就發(fā)生了。把母版頁(yè)和內(nèi)容頁(yè)分放到不同的目錄,這是大型網(wǎng)站推薦使用的最佳實(shí)踐。實(shí)際上,微軟建議你在專門的文件夾里保存所有的母版頁(yè)。不過(guò),如果你不夠小心,使用相對(duì)路徑時(shí)會(huì)帶來(lái)問(wèn)題。

例如,假設(shè)你把母版頁(yè)放在一個(gè)叫做MasterPages的子文件夾里,并在母版頁(yè)里加入了如下的<img>標(biāo)簽:

假設(shè)文件\MasterPages\banner.jpg存在,這看起來(lái)是行得通的。甚至在Visual Studio設(shè)計(jì)環(huán)境會(huì)出現(xiàn)圖片。但是,如果你在另一個(gè)子文件夾里創(chuàng)建了一個(gè)內(nèi)容頁(yè),路徑就會(huì)被解釋成相對(duì)于那個(gè)文件夾。如果文件在那里不存在,就會(huì)得到 一個(gè)破損的鏈接而看不到圖片。更糟的是,如果有一幅具有相同文件名的另外一個(gè)圖片,你會(huì)不經(jīng)意地得到一幅錯(cuò)誤的圖片。

這樣的問(wèn)題之所以會(huì)發(fā)生,是因?yàn)?lt;img>標(biāo)簽是普通的HTML。所以,ASP.NET不會(huì)接觸到它。遺憾的是,當(dāng)ASP.NET創(chuàng)建 內(nèi)容頁(yè)的時(shí)候,這個(gè)標(biāo)簽就不合適了。相同的問(wèn)題出現(xiàn)在向其他頁(yè)面提供相對(duì)鏈接的<a>標(biāo)簽以及用來(lái)把母版頁(yè)鏈接到樣式表 的<link>元素。

要解決這一問(wèn)題,你可以預(yù)先把URL寫成相對(duì)于內(nèi)容頁(yè)面的地址。不過(guò)這會(huì)帶來(lái)混淆,限制母版頁(yè)使用的范圍,并且產(chǎn)生在設(shè)計(jì)環(huán)境里不正確顯示母版頁(yè)的負(fù)面效應(yīng)。

另一個(gè)快捷的解決方案是把圖片標(biāo)簽變成服務(wù)器端控件,這樣ASP.NET就會(huì)修復(fù)這個(gè)錯(cuò)誤:

?

這個(gè)解決辦法會(huì)起作用是因?yàn)锳SP.NET根據(jù)這一信息創(chuàng)建一個(gè)HtmlImage服務(wù)器控件。這個(gè)對(duì)象在母版頁(yè)的Page對(duì)象實(shí)例化后創(chuàng)建,此時(shí),ASP.NET把所有路徑解釋為相對(duì)于母版頁(yè)的位置。你可以使用同樣的技術(shù)來(lái)修復(fù)<a>標(biāo)簽對(duì)其他頁(yè)面的鏈接。

你還可以使用根路徑語(yǔ)法,并用"~"字符作為URL的開(kāi)頭。例如,下面這個(gè)<img>標(biāo)簽毫無(wú)歧義地指向網(wǎng)站的MasterPages文件夾中的banner.jpg文件。

遺憾的是,這種語(yǔ)法只對(duì)服務(wù)器端控件有效。如果你要對(duì)普通的HTML產(chǎn)生同樣的效果,你需要在鏈接里包含域名的完整的相對(duì)路徑。這樣的HTML代碼難看且不可移植,所以不推薦使用。

?

摘錄自:http://book.51cto.com/art/200809/91060.htm

剛剛在做項(xiàng)目中時(shí)遇到的這個(gè)問(wèn)題,呵呵...特此記錄....項(xiàng)目進(jìn)展緩慢....老大要發(fā)火啦...郁悶....

中餐牛腩粉¥4.2

今天在解決這個(gè)問(wèn)題的時(shí)候另一個(gè)問(wèn)題又出現(xiàn)了,現(xiàn)在我要在母版頁(yè)引入jquery的文件,按照上面的方法我寫成???

<script src="js/jquery.js" type="text/javascript" runat="server"></script>

可是在運(yùn)行的時(shí)候卻出錯(cuò)了,說(shuō)是jquery.js中的第12行的$符號(hào)不知道是什么意思,然后我把runat="server"去掉后就又運(yùn)行成功了,看來(lái)是不能加runat="server"這個(gè)屬性了,可是這樣的話我在另一文件夾中套用母版頁(yè)的時(shí)候又會(huì)出現(xiàn)上面這個(gè)相對(duì)路徑的錯(cuò)誤了,經(jīng)到CSDN論壇發(fā)貼問(wèn),解決方法如下:

<script src='<%=ResolveUrl("~/js/jquery.js") %>' type="text/javascript"></script>

第一次知道有ResolveUrl這個(gè)方法,還真不錯(cuò),呵呵...

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/niunan/archive/2009/04/10/1433033.html

與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的母版页和相对路径的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。