怎样直接访问动态网站生成的静态页面

时间:2020-12-07 13:03:28
现在我正在做一个ASP.NET网站,要求是生成静态页面。生成静态页面之后,访问时还得先进入动态页面进行判断,然后才能进入静态页面。怎样直接访问动态网站生成的静态页面,而且不需要进行判断。

13 个解决方案

#1


你用Ajax访问ashx,你在ashx中判断,判断完后在添加给你的IFrame不就OK了

#2


直接访问文件的虚拟目录

#3


为什么要判断呢.你的链接URL直接弄成静态不就行了
 <a href="xx.html">静态页</a>

#4


可以通过url重写,把动态的.aspx得重写为.html这样不就行了

#5


我需要判断是否生成了静态页面,没有生成,就生成静态页面,如果生成了静态页面,就直接转到静态页面。但是我感觉这样写出来的代码有点麻烦,这样肯定会影响访问的速度呀。请大家给我一个好的建议,谢谢了!

#6


protected override void Render(HtmlTextWriter writer) {   
  StreamWriter r=new StreamWriter(Server.MapPath(""), false,System.Text.Encoding.UTF8);   
  HtmlTextWriter h=new HtmlTextWriter(r);   
  base.Render(h);   
  r.Close();   
  h.Close();   
  }   
 StringWriter wr = new StringWriter();
 Server.Execute("", wr);   
 this.lit.Text = Server.HtmlEncode(wr.ToString());
 File.WriteAllText(Server.MapPath(""), wr.ToString()); 

#7


生成的静态页地址你不是知道了 ,直接访问不就行了,你在数据库应该有存生成的静态页文件的文件名把,读他就行了

#8


楼上的方法确实不错,可是如果一个新闻刚添加到数据库中,还没有生成静态页面,我还是要进行判断,进而生成静态页面。要不然只在数据库中存有静态页面的文件名,没有静态页页面还是不行的呀。

#9


引用 8 楼 zengshuo888 的回复:
楼上的方法确实不错,可是如果一个新闻刚添加到数据库中,还没有生成静态页面,我还是要进行判断,进而生成静态页面。要不然只在数据库中存有静态页面的文件名,没有静态页页面还是不行的呀。

不用这样~做一个程序~生成静态页的~~~后台添加完新闻后,每天固定时间手动点生成静态页。或者
也可以用服务器,每天固定时间跑那个生成静态页的程序就可以了~~如果你还去进行逻辑判断就失去静态页的意义了……

#10


我每次都是添加新闻时 就直接生成静态页了....
看楼上的 好像我这样做不太好啊

#11


如果我的动态页面上含有像GridVeiw这样的动态控件,当数据有更新时,还需要重新生成新的静态页面。大家都是怎样解决这样的问题的呀?有没有一劳永逸的方法呀!!

#12


生成静态网页的办法就是全站生成。这样就不会存在你说的问题了。生成顺序一般为:你新加入的信息内容页,然后目录页,最后网站首页。


这种办法,如果数据量大的话,生成目录页比较耗时,其它都还好。

#13


教你一招 直接访问静态页 然后呢 用js判断 如果文件的修改时间 和当前时间大于一天 你用ajax 去调用 C#的一个函数 然后把动态的页面生成静态页面就可以了

#1


你用Ajax访问ashx,你在ashx中判断,判断完后在添加给你的IFrame不就OK了

#2


直接访问文件的虚拟目录

#3


为什么要判断呢.你的链接URL直接弄成静态不就行了
 <a href="xx.html">静态页</a>

#4


可以通过url重写,把动态的.aspx得重写为.html这样不就行了

#5


我需要判断是否生成了静态页面,没有生成,就生成静态页面,如果生成了静态页面,就直接转到静态页面。但是我感觉这样写出来的代码有点麻烦,这样肯定会影响访问的速度呀。请大家给我一个好的建议,谢谢了!

#6


protected override void Render(HtmlTextWriter writer) {   
  StreamWriter r=new StreamWriter(Server.MapPath(""), false,System.Text.Encoding.UTF8);   
  HtmlTextWriter h=new HtmlTextWriter(r);   
  base.Render(h);   
  r.Close();   
  h.Close();   
  }   
 StringWriter wr = new StringWriter();
 Server.Execute("", wr);   
 this.lit.Text = Server.HtmlEncode(wr.ToString());
 File.WriteAllText(Server.MapPath(""), wr.ToString()); 

#7


生成的静态页地址你不是知道了 ,直接访问不就行了,你在数据库应该有存生成的静态页文件的文件名把,读他就行了

#8


楼上的方法确实不错,可是如果一个新闻刚添加到数据库中,还没有生成静态页面,我还是要进行判断,进而生成静态页面。要不然只在数据库中存有静态页面的文件名,没有静态页页面还是不行的呀。

#9


引用 8 楼 zengshuo888 的回复:
楼上的方法确实不错,可是如果一个新闻刚添加到数据库中,还没有生成静态页面,我还是要进行判断,进而生成静态页面。要不然只在数据库中存有静态页面的文件名,没有静态页页面还是不行的呀。

不用这样~做一个程序~生成静态页的~~~后台添加完新闻后,每天固定时间手动点生成静态页。或者
也可以用服务器,每天固定时间跑那个生成静态页的程序就可以了~~如果你还去进行逻辑判断就失去静态页的意义了……

#10


我每次都是添加新闻时 就直接生成静态页了....
看楼上的 好像我这样做不太好啊

#11


如果我的动态页面上含有像GridVeiw这样的动态控件,当数据有更新时,还需要重新生成新的静态页面。大家都是怎样解决这样的问题的呀?有没有一劳永逸的方法呀!!

#12


生成静态网页的办法就是全站生成。这样就不会存在你说的问题了。生成顺序一般为:你新加入的信息内容页,然后目录页,最后网站首页。


这种办法,如果数据量大的话,生成目录页比较耗时,其它都还好。

#13


教你一招 直接访问静态页 然后呢 用js判断 如果文件的修改时间 和当前时间大于一天 你用ajax 去调用 C#的一个函数 然后把动态的页面生成静态页面就可以了