金鹏

|| 叶落知秋,见微知著。|| 不出户,知天下﹔不窥牖,见天道。其出弥远,其知弥少。是以圣人不行而知,不见而明,不为而成。

博客园 首页 新随笔 联系 订阅 管理

模版页中难免要引用CSS、脚本、图片等,这些文件的路径如果简单的使用相对路径,那么如果引用模版的目录一发生变化,这些路径就会出错;如果使用绝对路径,又不够灵活,如果应用程序目录发生变化,可能会导致要大量修改。asp.net支持一种相对于应用程序的路径,以波浪线开头的,形如"~/",使用它即可解决,例如:
<link rel="stylesheet" media="screen" type="text/css" href="<%=ResolveClientUrl("~/css/global.css") %>" />

当然如果你觉得每个路径都要写成动态的不爽,而又正好有页面基类的话,倒是可以换一种方式:

所有的路径直接书写为相对于应用程序目录的路径,形如:
<link rel="stylesheet" media="screen" type="text/css" href="~/css/global.css" />
当然默认HTML是不支持的这样的路径方式的,这时候就要借助PageBase了,代码如下(好像是从DNN的代码里面抠出来的):

public abstract class PageBase : Page  

        
protected override void Render(HtmlTextWriter writer) 

            StringWriter stringWriter 
= new StringWriter(); 
            HtmlTextWriter htmlWriter 
= new HtmlTextWriter(stringWriter); 
            
base.Render(htmlWriter); 
            
string html = stringWriter.ToString(); 
 
 
            转换相对路径
转换相对路径 
            writer.Write(html); 
 
        }
 
 
    }
 
posted on 2008-01-16 11:44  金鹏  阅读(144)  评论(0)    收藏  举报