静态页技术大致有两种方式:

一)

伪静态,或者更专业点 叫做 url rewrite. asp.net中你可以选择一些开源组件进行重写url.

文章以及代码资源:

当然还有其他的,更当然你可以自己写,主要运用asp.net管道机制,httpmodule.具体知识,你可以搜索啦.

二)

基于服务器访问压力,在服务器端生成纯静态html页面.,或者基于模板技术,生成静态页面.也就是静态页面里面有类似标签的东西,你自己写正则表达式进行替换.这个主要是原理,当然你可以参考使用一些开源模板引擎.

开源资源:

1)

stringtemplate

2)

你也可以看看一些开源的项目进行学习,比如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);//替换Title

str = 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文件夹下!");

}

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐