日期:2014-05-18  浏览次数:20603 次

100分技术讨论,关于asp.net生成html静态页,目录页分页静态化问题

最近在做一个   全html   生成问题,为了方便讨论,简单说一下:
主要是新闻系统,全站静态生成

主题,子类,正文,

新建一个主题   就   新建一个文件夹   在网站下,   如http://aa.cn/games.
创建一个子类就在   所属主题下面   新建文件夹,   如   http://aa.cn/games/class
正文是先做了个模板,然后添加的时候,静态生成她,并放到相对应的目录下

如:
http://aa.cn/games/class/200709220445.html


以上这些都可以实现.

那么在显示子类页的时候   也就是
http://aa.cn/games/class/
应该是显示文章列表的,并且要静态化,这些都可以做到
关键是静态化要分页
怎么解决新添加一个文章在最上面,并且不用全部生成列表呢?


------解决方案--------------------
显示文章列表 也用后台生成..就可以实现....
------解决方案--------------------
肯定是要重要生成的...一般列表页都是做成伪静态的,如果做成静态牺牲太大了
------解决方案--------------------
般列表页都是做成伪静态的
------解决方案--------------------
URL REWRITE
------解决方案--------------------
一般是伪静态!!!!也就是url rewrite!!实现还是动态页面!!
------解决方案--------------------
新添加一个文章在最上面 可以试试获取子类中文章生成的时间,然后按时间先后显示到列表
------解决方案--------------------
实际上,只要能动态看到的东西,就可以生成静态的页面.

提供个思路,因为我也是看过一个cms 是这样做的,

写个页面,这个页面接收一个文章ID,然后就可以显示出该显示的东西,比如页面banner,栏目类别,文章内容 等等, 这个可以实现吧. 然后,再写个生成静态页面的页面,给前面的那个页面传个参数, "请求 " 那个页面,把请求得到的字节流写入静态文件.

其实说得很含糊,这里面还包括了生成文件名等等好多细节,我也不熟悉,大家一起交流吧.
------解决方案--------------------
如果要不全部生成,除非排序是ASC的

一般情部,分页不做静态

还有,生成静态的页也不是按类分放的,要按日期

如果一个文件夹下有1000W个HTML页的话,那OS要花大量些时间去这个文件夹下找

但是把1000W个文件分别放在1000个文件夹下,那么就可以可以按路径准确查找
------解决方案--------------------
将Asp.net页面输出为HTML
http://blog.csdn.net/octverve/archive/2007/09/04/1771107.aspx

anncesky(不想飞,想一步跨过太平洋) ,说设计思路是可行的。
------解决方案--------------------
http://blog.csdn.net/octverve/archive/2007/09/04/1771107.aspx
用的也是类似urlrewriter,不是静态页面生成
------解决方案--------------------
mark 以后用得到
------解决方案--------------------
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
using System.Net;

/// <summary>
/// SysImports 的摘要说明
/// 静态页面生成类
/// </summary>
public class SysImports
{
/*************************************
*
*************************************/
private string _path= " ";
private string _fileName;
private string _url=HttpContext.Current.Request.Url.ToString();
private Encoding _code=Encoding.GetEncoding( "utf-8 ");
private string _webPath = " ";


/*************************************
* 设置生成静态也的文件编码
*************************************/
public Encoding code
{
set
{
_code =value;
}
get
{
return _code;
}
}