asp.net母板使用注意
1.母板中的路徑問題
如果你使用了母板,同時母板裡面又使用了和“路徑”有關的標籤,比如
頭部:
<script type=”text/javascript” src=”scripts/jquery.js”></script>
<link type=”text/css” rel=”stylesheet” href=”styles/common.css” />
body:
<img src=”images/logo.png” alt=”****有限公司” />
<a href=”about/index.aspx”>關於本站</a>
這時候你要注意了,你得看看你的aspx檔案層次是否對應到母板裡的路徑結構,比如aspx存在不同的目錄巢狀:
如:
根:default.aspx
下級:
根/about/default.aspx
根/job/list.aspx
。。。。
這種情況要求你的母板里路徑不能是死的。
那麼怎麼辦呢?
大家知道有個~/指的就是專案的跟路徑位置,
但是需要服務端控制元件支援,而我們的<a>,<img>這裡不是伺服器控制元件,好在有個runat=”server”能夠轉化。
於是
<img src=”~/images/logo.png” alt=”****有限公司” runat=”server” />
<a href=”~/about/index.aspx” runat=”server”>關於本站</a>
這是絕對路徑方式,當然也可以用../的相對路徑方式。
但是要注意服務端控制元件的相對路徑方式相對專案本身而言的!!這樣不必你關心將來的部署,只管好專案的目錄層次就OK了。
你也可以用<asp:***>的伺服器控制元件。
如果不想用伺服器控制元件,也有個辦法解析”~/”的,那就是Page.ResolveUrl()和Page.ResolveClientUrl()
區別是ResolveUrl解析為跟路徑方式/aaa/bb/aa/**
如果網站或者測試開發中一般都是在虛擬目錄裡工作,所以這裡不用這個版本。
下面程式碼:
<link type=”text/css” rel=”stylesheet” href=”<%=Page.ResolveClientUrl(“~/”) %>styles/common.css” />
<script type=”text/javascript” src=”<%=Page.ResolveClientUrl(“../”) %>scripts/jquery.js”></script>
這個是../呵呵。
我問個問題,這裡的”../”是相對於生成的aspx頁面,還是當前這個母板檔案?
答案是:相對於母板這個檔案,因為這個是對應專案而言的相對路徑。
<img src=”../images/logo.png” alt=”****有限公司” runat=”server” />
<img src=”../images/logo.png” alt=”****有限公司”/>
這兩個裡面的”../”呢?
答案是:runat的那個伺服器控制元件對專案而言的相對路徑,下面那個是死的,對各自的aspx檔案而已,實際中謹慎使用。
總之,我們應該養成母板裡用到路徑時而立馬想到上面的靈活方式,考慮是用伺服器控制元件還是方法解析。
本文轉自 xcf007 51CTO部落格,原文連結:http://blog.51cto.com/xcf007/473621,如需轉載請自行聯絡原作者
相關文章
- 原始碼管理:SVN原始碼管理器在ASP.NET VS中的使用注意事項原始碼ASP.NET
- Asp.net core 2.0 +SPA檔案上傳注意事項ASP.NET
- 使用parallel注意事項Parallel
- vector的使用注意點
- ASP.NET 使用AjaxASP.NET
- Asp.net 使用FluentSchedulerASP.NET
- 使用Google Fonts注意事項Go
- Go 切片使用注意事項Go
- golang defer使用需要注意Golang
- 介面的使用注意問題
- 使用CocosBuilder注意事項UI
- removeChild使用時注意事項REM
- Oracle使用*的注意事項Oracle
- BigDecimal使用注意的地方Decimal
- ASP.NET Core ----ASP.NET Core中使用Code FirstASP.NET
- Asp.Net MVC 使用 AjaxASP.NETMVC
- asp.net TreeView 的使用ASP.NETView
- ASP.NET中使用框架ASP.NET框架
- Golang switch case 的使用注意點Golang
- GO 的匿名函式使用注意Go函式
- TCP使用注意事項總結TCP
- 使用HTTP需要注意什麼?HTTP
- C中memcpy使用注意事項memcpy
- 萬兆網路卡使用注意事項
- MySQL半同步使用注意事項MySql
- Guava HashMultimap使用及注意事項Guava
- setbuf函式使用注意事項函式
- php getallheaders使用注意事項PHPHeader
- 使用直方圖注意事項直方圖
- sql中的*的使用注意點SQL
- Oracle10g 使用注意點Oracle
- Oracle中date型別使用注意Oracle型別
- 需要注意的unix命令使用
- 面試官:集合使用時應該注意哪些問題?我:應該注意該注意的問題!面試
- ASP.NET Core 中使用TypeScriptASP.NETTypeScript
- ASP.NET MVC 使用 Datatables (1)ASP.NETMVC
- ASP.NET MVC 使用 Datatables (2)ASP.NETMVC
- ASP.NET MVC TagBuilder使用ASP.NETMVCUI