将 Django 站点转储为静态 HTML? [关闭]

Posted

技术标签:

【中文标题】将 Django 站点转储为静态 HTML? [关闭]【英文标题】:Dump Django site to static HTML? [closed] 【发布时间】:2010-09-26 08:57:37 【问题描述】:

我确定我当地的网络托管公司不支持 Django。

他们运行 Python 2.2。 不支持mod_python、FastCGI 或 SCGI。 不支持mod_rewrite

其中任何一项都会阻止我在该托管服务上将我的网站部署为 Django 应用程序。

我意识到我的网站基本上是静态的。我想知道是否可以将 Django 缓存用于文件系统,并部署该缓存中的内容。或者使用wget 递归捕获我在本地主机上运行的站点。有人做过这种手术吗?有可能吗,值得付出努力吗?

我意识到我至少有两个其他选择:

使用 php CMS 解决方案。 将我的域切换到另一个托管服务。

编辑:感谢大家的建议!我已经向我的托管服务提供商发送了一封电子邮件,让他们有机会为我提供升级服务。如果他们不能通过,我正在寻找 WebFaction 作为提供者。

【问题讨论】:

【参考方案1】:

我会说切换到另一个托管服务。实际上有一个french hosting service 支持 Django 并提供免费的托管包(但您只能获得 10 MB)。

【讨论】:

【参考方案2】:

我使用http://www.httrack.com/ 几次将动态网站翻录成静态html,总体来说还不错。

如果您有类似 Dreamweaver 之类的工具可以在您完成后检查所有链接,这很有帮助,但取决于它有多大。

【讨论】:

【参考方案3】:

Wget 有一个递归镜像选项...只需 google 即可获得 Wget 镜像。

【讨论】:

在 Wikipedia 上找到了这段代码,就像魅力一样。 wget --mirror -w 2 -p --html-extension --convert-links -P $dir_prefix http://www.yourdomain.com【参考方案4】:

Wget 带有“-m”(镜像)开关可能是您正在寻找的。这样做的“更干净”的方式可能是只获取通常由上下文处理器传递的所有内容,然后手动将其组合到您的模板中。

顺便说一句,这真是太糟糕了,伙计。 Django 的动态特性是它如此伟大的重要组成部分。如果您不打算使用荒谬的传输量(假设 > 10 GB),我可能会免费托管您。

【讨论】:

【参考方案5】:

Django 的StaticGenerator 是你想要的。它旨在拉取 Django 视图并将它们保存为静态 HTML 文件。这就是我发布网站的方式 (http://nedbatchelder.com)。

更新:原始链接已消失,但包在 PyPI 上:http://pypi.python.org/pypi/staticgenerator

【讨论】:

非常感谢您提供有关如何安装和运行它的基本指南/纲要,谢谢 :)【参考方案6】:

要么使用 PHP CMS 解决方案,要么获得新主机。为什么复杂的事情更进一步? (真正的问题是你为什么要使用 Django(或任何框架)来开发一个大部分是静态的网站?)

【讨论】:

网站对读者来说是静态的,但使用 CMS 界面进行创作仍然很有帮助。【参考方案7】:

我的项目Cactus 允许您使用 django 构建静态站点。

【讨论】:

项目未维护...

以上是关于将 Django 站点转储为静态 HTML? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Django 全球 base.html 模板

Django:404 模板中的静态文件

无法让 Apache 为 django 管理静态文件提供服务

django1.10使用本地静态文件

带有 CORS 转储数据的 Django 1.9:“corsheaders_corsmodel”不存在

Django Admin:为两个管理站点使用不同的模板