6

I want to build a simple site with MVC but then render the "pages" and corresponding "assets" (js, css, images, etc) to what one might call a "static site".

In other words, I don't want to deploy to an IIS server that supports MVC. I simply want to build the site in MVC then somehow parse those pages into static html/css/etc files and upload the site to a regular LAMP host.

Is there an easy way to automate this? NuGet package? Binary? MVC extension like maybe a handler add-on that can render out the static site in a single pass?

4

5 回答 5

2

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

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

高温高压

于 2012-06-11T17:05:03.323 回答
1

您可能想看看Pretzel,一个 .Net 静态站点生成器。

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

于 2013-03-26T19:58:20.903 回答
1

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

于 2012-06-11T04:42:29.700 回答
0

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

当然你仍然需要运行 IIS/.net

于 2012-06-12T04:21:20.997 回答
0

你有三个选择:

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

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

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

于 2020-03-24T03:44:59.127 回答