哆啦的时光机
静态页技术大致有两种方式:
一)
伪静态,或者更专业点 叫做 url rewrite. asp.net中你可以选择一些开源组件进行重写url.
文章以及代码资源:
1)http://msdn.microsoft.com/zh-cn/library/ms972974.aspx
http://blog.csdn.net/showmy/archive/2007/11/01/1861400.aspx
下载地址1:http://www.rickel.cn/uploads/DevTools/MSDNURLRewriting.msi下载地址2:download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi2)
http://urlrewriter.net/
当然还有其他的,更当然你可以自己写,主要运用asp.net管道机制,httpmodule.具体知识,你可以搜索啦.
二)
基于服务器访问压力,在服务器端生成纯静态html页面.,或者基于模板技术,生成静态页面.也就是静态页面里面有类似标签的东西,你自己写正则表达式进行替换.这个主要是原理,当然你可以参考使用一些开源模板引擎.
开源资源:
1)
stringtemplate
http://www.antlr.org/wiki/display/ST/Five+minute+Introduction
http://www.stringtemplate.org/download.html
2)
http://nvelocity.sourceforge.net/
你也可以看看一些开源的项目进行学习,比如discuz等.
下面提供的简单实现原理.
//源码是替换掉模板中的特征字符
string mbPath = Server.MapPath("template.htm");Encoding code = Encoding.GetEncoding("gb2312");StreamReader sr = null;StreamWriter sw = null;string str = null;
//读取try{sr = new StreamReader(mbPath, code);str = sr.ReadToEnd();
}catch (Exception ex){throw ex;}finally{sr.Close();}string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".html";str = str.Replace("$title$", txtTitle.Text);//替换Titlestr = str.Replace("$content$", txtContent.Text);//替换content//生成静态文件try{sw = new StreamWriter(Server.MapPath("html/") + fileName, false, code);sw.Write(str);sw.Flush();
}catch (Exception ex){}finally{sw.Close();Response.Write("恭喜" + fileName + "已经生成,保存在html文件夹下!");}