No older revisions available
일반적인 링크의 경우, runat="server"속성을 붙여주면 마스터페이지의 경로에 따라 페이지 경로가 자동 재지정된다.
<a href="Default.aspx" runat="server">home</a>
object 요소에 포함된 param 요소의 value값이나 embed 요소의 src 속성 등 runat="server"로 변환이 안 되는 경우에는 Control.ResolveClientUrl메서드를 활용하면 된다.
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="100" height="100" style="line-height:0;">
<param name="movie" value="<%=ResolveClientUrl("flash/flash.swf")%>" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<embed src="<%=ResolveClientUrl("flash/flash.swf")%>" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="100" height="100" wmode="transparent"/>
</object>
자바스크립트 JS 파일에 포함된 링크의 경우에는, 페이지의 현재 위치를 나타내는 변수를 지정하여 활용하면 된다.
- 헤더의 내용 :
<script type="text/javascript"> var siteRoot = "<%=ResolveClientUrl("./") %>"; </script> <script src="<%=ResolveClientUrl("common/flash.js")%>" type="text/javascript"></script> - js파일의 내용 :
function goToSub1() { location.href =siteRoot+"sub/Sub1.aspx"; } //...
if (document.URL.indexOf("Default.aspx") == -1) {
siteRoot= "../";
} else {
siteRoot= "";
}
function goToSub1() {
location.href =siteRoot+"sub/Sub1.aspx";
}
마스터 페이지에서 Head 태그의 URL 재지정에 관하여는 ASP.NET/Head를 참고하라.