【发布时间】:2012-06-26 15:21:30
【问题描述】:
对于一个项目,我必须生成静态 .html 页面,这些页面将发布到远程服务器上。
我必须通过 c# 代码自动创建这些文件,该代码从 SQL Server 数据库中获取数据。
数据不会经常更改(每 4-5 个月一次),并且该网站的访问量会很高。
由于我发现asp.net MVC3 的razor 合成器非常有效,我想知道是否可以使用asp.net MVC3/Razor 来生成那些.html 页面?
所以:
- 这是个好主意吗?
- 如果是,有什么好的方法?
- 如果你想用另一种好的方式来做这件事,哪种方式?
感谢您的帮助
编辑
关于答案,我需要准确地说:我不想/不需要使用 Web 缓存,原因有很多(加载(每月加载数百万个页面)、集成(我们将页面集成到优化的apache 与,网站的另一部分),页面数(缓存只会在我有很多时间相同的页面时对我有帮助,但我会有〜 2500 页,所以根据墨菲定律,除非我放了一个非常高速缓存超时,我将不得不经常生成它们)。所以我真的搜索了一些东西来生成 HTML 页面。
编辑 2
我刚得到一个新的约束:/那些模板必须本地化。这意味着我应该有相当于以下剃须刀代码的东西:@MyLocalizationFile.My.MyValue
编辑 3 目前,我正在考虑做一个动态网站,并在其上调用一些 http 查询,以存储生成的 HTML。但是,有没有办法避免http?意思是模拟一个http调用,指定输出流和调用的url(只有GET调用)。
我们之前的加载量确实被低估了,实际上他们每天的访问量略高于 100 万,约 1400 万页/天。
【问题讨论】:
-
我同意你的观点,存储静态 html 是最有效的方式,而且大多数情况下比使用输出缓存或其他缓存机制要好得多。
-
我最近听说过 DocPad,它基本上可以满足您的要求,除了它不是 ASP.Net 或 Razor。我希望有像 DocPad 这样的 ASP.Net/MVC3/Razor 产品。我认为有一个地方可以使用动态渲染引擎来创建静态站点。我与多个将从这个想法中受益的网站合作。当您进行更新时,您重新生成站点并再次上传整个站点或使用差异工具过滤掉更改的文件并上传这些文件。
标签: c# html asp.net-mvc razor