下面的代码可以用指定内容替换模板文件里的标记,并生成新的html文件,从而达到生成静态页面的效果。方法比较简单,执行速度也还可以。缺陷就是只对内容页有用,生成不了静态的列表页。
//读模板
string path = HttpContext.Current.Server.MapPath("/Html/");//生成页面保存地址
string temp = HttpContext.Current.Server.MapPath("/template/test.htm);//模板地址
Encoding code = Encoding.GetEncoding("gb2312");
StreamReader sr = null;
StreamWriter sw = null;
try
{
sr = new StreamReader(temp, code);
str = sr.ReadToEnd(); // 读取文件
}
catch (Exception exp)
{
HttpContext.Current.Response.Write(exp.Message);
HttpContext.Current.Response.End();
sr.Close();
}
str = str.Replace("[title]", title);//替换
str = str.Replace("[addtime]", addtime);
str = str.Replace("[textfrom]", textfrom);
str = str.Replace("[author]", author);
str = str.Replace("[content]", content);
// 写文件
try
{
sw = new StreamWriter(path + htmlurl, false, code);
sw.Write(str);
sw.Flush();
}
catch (Exception ex)
{
HttpContext.Current.Response.Write(ex.Message);
HttpContext.Current.Response.End();
}
finally
{
sw.Close();
}