axp.net网站动态新闻 生成静态页面的问题!!!(我哭着跪求!)

dingbaoliang 2008-10-16 01:46:38
我要做个网站 但是公司要求网站的新闻添加完毕后 直接生成静态页面

我到网上也搜到了 代码 但可特别复杂我都看不懂
代码里有10多个模板 而且还带分页 首页也给静态化了

我想要个只接能生成网站新闻的代码就可以了

希望 各位高手 说的详细一点 具体该怎么做 一步一步的告诉我 我是新手啊
重来没接触过静态化这方面的技术

我先谢谢大家了 真的很急 谢谢
...全文
484 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
userLingJun 2012-01-17
  • 打赏
  • 举报
回复
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa顶
chensiboy 2010-01-29
  • 打赏
  • 举报
回复
关于网站静态化的一点点感想
http://topic.csdn.net/u/20100129/09/2fe308ee-fce1-4d8d-9d67-2b3d94ae81fb.html?seed=332626135&r=63093439#r_63093439
OOOqqqOOO 2009-12-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sp1234 的回复:]
由于我一直没有批量生成html的需求,我的页面项目都是动态交互的应用程序,所以我一直没有对这个问题专门写个帖子呼吁一下。实际上,所谓模板做法,离asp.net页面开发技术倒退了十万八千里了呀,那一点点变量替换做法比asp.net无人挂齿的“ <%= 变量 %>”表达式还不如,而数据绑定、模板、各种界面自动生成控件就更别提了,使用模板方法只是为了得到html?那么别这样了,在asp.net中有很多方?-
[/Quote]

但是回复这些,静态不行啊...
  • 打赏
  • 举报
回复
学习了
qiji365 2009-07-06
  • 打赏
  • 举报
回复
zhangmeeno 2009-07-06
  • 打赏
  • 举报
回复
学习
fsy123456accp 2008-10-20
  • 打赏
  • 举报
回复
好贴子 顶一个先 来收藏了
hubblebubblepig 2008-10-16
  • 打赏
  • 举报
回复
看1234发帖子 真是受益匪浅哪!~ 有见地!~ 哈哈
hubblebubblepig 2008-10-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hubblebubblepig 的回复:]
如果html页面存在就直接访问此页面
如果不存在 就根据对应关系 转到相应aspx页面进行处理 此aspx页面继承重写Render的page类 生成html代码 再重定向到html页面
[/Quote]
这个"相应aspx页面"并不是与html页面一一对应的关系 html页面url的作用往往只是为其提供参数 涉及到一点点儿的url重写
hubblebubblepig 2008-10-16
  • 打赏
  • 举报
回复
如果html页面存在就直接访问此页面
如果不存在 就根据对应关系 转到相应aspx页面进行处理 此aspx页面继承重写Render的page类 生成html代码 再重定向到html页面
  • 打赏
  • 举报
回复
开发你的公司静态网站,你可以先照常地使用aspx开发,使用母版来统一布局风格、theme来统一美工风格、数据绑定控件来生成丰富的数据驱动界面、模板(我是指Template等控件嵌套声明技术)来提供内容扩展等等高级的方法,只是简化了asp.net应用开发,因为大多都没有交互操作考虑。

作为一套单独的扩展机制,你可以在我上面3行代码的思路的基础上,成为一个独立的小程序,例如它可以自动产生和更新html并提供为请求导航到html。它是对一套普通的asp.net网站的扩展,而不是把开发技术拉回低级的水平。
sendling 2008-10-16
  • 打赏
  • 举报
回复
好帖,学习了
  • 打赏
  • 举报
回复
由于我一直没有批量生成html的需求,我的页面项目都是动态交互的应用程序,所以我一直没有对这个问题专门写个帖子呼吁一下。实际上,所谓模板做法,离asp.net页面开发技术倒退了十万八千里了呀,那一点点变量替换做法比asp.net无人挂齿的“<%= 变量 %>”表达式还不如,而数据绑定、模板、各种界面自动生成控件就更别提了,使用模板方法只是为了得到html?那么别这样了,在asp.net中有很多方法,不仅仅我上面这样写法一种,还可以重写aspx的Render方法来截获html(这样只有第一次访问页面时生成各种控件)等。而我只是使用页面缓存,所以对生成html不太重视。另外,生成全站真正的html,要注意先将页面中所有链接都写成(或者根据一个参数动态生成)指向html的而不是aspx的,然后再将页面保存为html。
  • 打赏
  • 举报
回复
我在我的测试页面写:
using System;
using System.IO;
using System.Text;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
Server.Execute("~/TestDropdownlist.aspx", new StringWriter(sb));
File.WriteAllText(Server.MapPath("~/app_data/TestDropdownList.html"), sb.ToString());
}
}

运行后我就看到了记录下来的html文件。

你可以用这个方法循环遍历一组待处理的文件名集合,批量地生成一批html。
  • 打赏
  • 举报
回复
只要两行代码就可以你的网站中的任意页面保存到字符串中:
StringBuilder sb = new StringBuilder();
HttpContext.Current.Server.Execute("~/MyDemo.aspx", new StringWriter(sb));

然后,你就可以使用一行类似
File.Write(文件路径,sb.ToString());
这样的代码将此页面html源码保存起来。

你的aspx照常开发,一点也不受影响。

那些所谓的“模板”,说句不客气的话,纯粹是从早期asp、jsp时代抄来的代码,不是asp.net coder的内手技术。
borlaster 2008-10-16
  • 打赏
  • 举报
回复
简单的说下思路好了~
同1楼说的,首先要个制作静态新闻页面的模版,这个模版中间显示新闻标题、时间、作者、正文等需要变换的位子用特殊字符串代替(如$%title%$,$%time%$).
接下来你还需要有个新闻管理的后台系统。
再就是在发布新闻按钮中具体要做的事了:
1.新闻模版这个.html文件用流读取成一个字符串
2.对这个字符串做多个Replace操作来替换成你需要生成的新闻,如str.Replace("$%title%$","新闻:XXXX"),前者就是前面说的特殊字符串,后者是你通过管理后台从数据库中读出来的真实新闻信息
3.再把处理后的字符串再使用流写成一个html文件,这个时候你所需要的不同的新闻静态页面也就获得了,当然中间生成的静态页面文件名和不同的文件夹名这个你自己去处理好了(推荐用时间命名)
4.前台应该有个显示不同新闻链接的table,这里如果用.aspx就没什么好说的,Databind一下每个新闻的访问地址即可。如果前台依然使用的是.html来控制新闻链接的话,这里就要用AJAX来更新你发布的新新闻链接了
symbol_bc 2008-10-16
  • 打赏
  • 举报
回复
说错了,不是用this.Response.Write(); 是io操作。Replace()
symbol_bc 2008-10-16
  • 打赏
  • 举报
回复
我也做过一点这方面的东西,思路就是首先有一个模板,一般都是静态页面,在你需要显示动态信息的地方放置特殊字符串,
如果替换的地方比较多,就用数组,然后正常处理请求,在你的.aspx逻辑里,把要生成的数据用this.Response.Write();
组织好,替换掉模板上的特殊字符串,然后把静态页面发到客户端。

这样做能实现没没问题,但是多了文件按操作,我不知道效率怎样,可能也要和你的数据量有关吧!!
在iis里好像能对html进行映射过滤,把对静态页面的请求转到aspx中。

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧