静态页面生成技术咨询!
问题:公司现在做的这个项目,要求全站生成html页面,现在以确定终级文章页面用模板生成,但是首页和二,三级页面要怎么生成html页面? 
 1.因为首页全都是一些二,三级页面分类的标题,内容也比较多,所以不能用模板生成! 
 2.用url重写生成伪html页面,这倒是最好的办法,可公司现在没有自己的服务器不能设置iis,这办法好像也行不通. 
 3.IO输出生成html,这种方法怎么做的页面上链接的正确性? 
 4.偶天天上csdn怎么可用分一分也没加! 
 5.请大家帮帮忙,周三交货:( 
 分不够还可以在加! 
 先谢了!
------解决方案--------------------二三级页面的链接是指定地址的吧?比如说,新闻,公告。。。。   
 如果不是指这下地址,那在生成的时候指定   
 比如文章的标题,
------解决方案--------------------帮顶
------解决方案--------------------
------解决方案--------------------没用过,帮顶
------解决方案--------------------啊没有自己的IIS还生成静态的干什么用呀?
------解决方案--------------------你这个要求的话就需要自动的生成栏目, 
 首页先建立元素(可能是一条标题),模板(可能是一块栏目),最后是一张页面,里面包含着各种元素和模板;最后生成静态的页面; 
 你如果按照这样的思路做这个项目的话,别说周三了,你长假结束也不一定做得完的
------解决方案--------------------一般只有具体内容才生成静态的 
 首页生成,调用这个方法 
 public bool GetUrltoHtml(string Url,string MapPath) 
 		{  		 
 			//try 
 			//{ 
 			MapPath = HttpContext.Current.Server.MapPath(MapPath); 
 			//			if(File.Exists(MapPath)) 
 			//			{ 
 			//				File.Delete(MapPath); 
 			//			} 
 			StringBuilder htmltext=new StringBuilder(); 
 			System.Net.WebRequest wReq = System.Net.WebRequest.Create(Url); 
 			// Get the response instance. 
 			System.Net.WebResponse wResp =wReq.GetResponse(); 
 			// Read an HTTP-specific property 
 			//if (wResp.GetType() ==HttpWebResponse) 
 			//{ 
 			//DateTime updated  =((System.Net.HttpWebResponse)wResp).LastModified; 
 			//} 
 			// Get the response stream. 
 			System.IO.Stream respStream  = wResp.GetResponseStream(); 
 			// Dim reader As StreamReader = New StreamReader(respStream) 
 			Encoding code = Encoding.GetEncoding( "gb2312 "); 
 			using (StreamReader reader = new StreamReader(respStream,code))  
 			{   
 				string line; 
 				while ((line = reader.ReadLine()) != null)  
 				{ 
 					htmltext.Append(line+ "\r "); 
 				} 
 				reader.Close(); 
 			}  				 
 			using(StreamWriter sw=new StreamWriter(MapPath,false,System.Text.Encoding.GetEncoding( "GB2312 "))) 
 			{ 
 				sw.WriteLine(htmltext); 
 				sw.Flush(); 
 				sw.Close(); 
 				return true; 
 			}   
 			//} 
 			//	catch 
 			//{ 
 			//		return false; 
 			//	}  			 
 		}
------解决方案--------------------我刚刚在博科写了一篇。 
 qinghunt.cnblogs.com 
 第一个问题我不是很理解,分类标题怎么就不能了?在相应页面的添加模块设置triger,有新内容添加就Render一次新页面(其实我是使用删除静态页面)。所以首页是可以的。 
 2.略过。 
 3.如果aspx Render到客户端的没有问题,那么这里就不应该有问题。 
 4.RP问题,呵呵 
 5.多多益善。 
------解决方案--------------------主要的思想是,通过在basePage重载OnInit方法(判断aspx对应的静态页面是否存在,来决定是生成还是重定向)和Render方法(到这里了可以确定页面是不存在的,所以把要生成的内容流存到静态页面中去,而不是直接render到客户浏览器,最后重定向)。在内容没有更新时,页面请求都会被OnInit重定向到静态页面(也可以确定是最新内容)。当有内容更新的同时,删除内容相关的所有静态页面(可动态配置),达到更新静态页面的目的。另外注意一点的是,我的实际使用中,因为不同页面定位的路径不一样,所以我写了一个BasePage,还有多个moduleBasePage,最后页面是继承的moduleBasePage,我想你也会遇到一样的问题。
------解决方案--------------------其实是很没必要把首页和二、三级页面生成静态的 
 这样做只要数据库一改变,你就得重新生成一次
------解决方案--------------------mark
------解决方案--------------------