将我的MVC站点转储到静态文件

时间:2012-06-11 04:15:32

标签: asp.net-mvc static-site

我想用MVC构建一个简单的网站,然后将“页面”和相应的“资产”(js,css,图像等)呈现给人们称之为“静态网站”的内容。

换句话说,我不想部署到支持MVC的IIS服务器。我只想在MVC中构建网站,然后以某种方式将这些页面解析为静态html / css / etc文件,并将网站上传到常规LAMP主机。

有一种简单的方法可以实现自动化吗? NuGet包?二进制? MVC扩展可能是一个处理程序加载项,可以在一次传递中呈现静态站点吗?

5 个答案:

答案 0 :(得分:2)

大约10年前,我曾经使用HTTrack网站复印机下载整个网站供离线使用。也许你可以下载自己的网站,它为你提供了很好的静态网页层次结构。如果您认为所有网页都可以通过主页链接,菜单链接等访问,那么您可以下载大部分网站。基本上你可以谷歌搜索网页抓取工具/离线浏览器/网站下载等等,并运行它们来完成你的工作。

或者,如果您知道网址的模式,您可以将其提供给下载管理器以下载它们。不确定它是否适用于您的网站,但我有时会这样做。

HTH

答案 1 :(得分:1)

您可能需要查看{。3}},一个.Net静态站点生成器。

更新:显然它不适用于ASP.Net项目:Pretzel。它仅支持Razor语言来创作内容页面。

答案 2 :(得分:0)

如果您的站点依赖于数据库或其他动态源,则几乎不可能将所有可能的页面组合转储到静态文件中。另一方面,如果您的站点非常静态,将呈现的HTML / JS / CSS源保存到文件中并将其上传到LAMP服务器将不会太难。

答案 3 :(得分:0)

如果执行此操作的原因与性能有关,为什么不仅仅使用输出缓存等,这样页面将非常快(您可以将缓存超时设置为很长一段时间)而您不这样做需要运行一些工具来进行转换,并且必须将html与源代码分开存储。

当然,您仍然需要运行IIS / .net

答案 4 :(得分:0)

您有三个选择:

  1. 使用纯html,css,jquery和图像创建您的网站。您可以使用Visual Studio Code作为IDE来创建文件。一个问题可能是管理网站的通用页眉/页脚。但是您可以通过使用jquery注入html页眉/页脚来解决此问题。

  2. 使用Umbraco之类的CMS(内容管理系统)来托管您的静态网站。 Umbraco索引并缓存页面以提高性能。您可以控制在网站等上发布的内容。

  3. 使用.Net + MVC创建网站,并使用HTTrack之类的工具下载网站的静态副本。您甚至可以使用命令来自动化该过程,并在每次部署或构建等之后触发它。