2008-12-11 71 views
22

我確定我的本地虛擬主機公司無法支持Django。將Django站點轉儲爲靜態HTML?

  • 他們運行Python 2.2。
  • 不支持mod_python,FastCGI或SCGI。對於mod_rewrite不支持。

其中任何一個都阻止我將該網站作爲該託管服務中的Django應用程序部署。

我意識到我的網站基本上是靜態的。我想知道是否可以使用Django緩存到文件系統,並部署緩存中的內容。或者使用wget遞歸捕獲我的本地主機上運行的站點。有沒有人做過這種手術?這是否可能,是否值得付出努力?

我知道我有其他的至少有兩個選項:

  • 使用PHP CMS解決方案。
  • 將我的域名切換到另一個託管服務。

編輯:感謝大家的建議!我發送了一封電子郵件給我的託管服務提供商,讓他們有機會爲我提供升級服務。如果他們不能通過,我正在尋找WebFaction作爲供應商。

回答

16

Django的StaticGenerator是你想要的。它的目的是拉動Django視圖並將它們保存爲靜態HTML文件。這是我發佈我的網站(http://nedbatchelder.com)。

更新:原路段走了,但是包PyPI上:http://pypi.python.org/pypi/staticgenerator

+0

看起來很有希望。謝謝! – 2008-12-11 06:03:25

+0

看起來像StaticGenerator不再可用:上面的鏈接已經死了,github回購也不見了。 – 2012-04-15 22:58:19

1

我會說切換到另一個託管服務。實際上有一個支持Django的french hosting service,並提供一個免費的託管軟件包(但您只能獲得10 MB)。

4

我用http://www.httrack.com/幾次把一個動態網站翻到靜態html,一般都不錯。

如果您有類似Dreamweaver的幫助,可以在完成後檢查所有鏈接,但取決於它的大小。

+0

感謝您的建議! – 2008-12-11 06:02:55

1

Wget有一個遞歸鏡像選項...只是谷歌Wget鏡像。

+1

在Wikipedia上發現這個代碼,像魅力一樣工作。 `wget --mirror -w 2 -p --html-extension --convert-links -P $ {dir_prefix} http:// www.yourdomain.com` – 2016-03-15 05:18:44

11

Wget與「-m」(鏡像)開關可能是你在找什麼。這樣做的「乾淨」方式可能是隻取上下文處理器通常會傳遞的所有內容,並手動將其組合到模板中。

順便說一句,這是一個真正的無賴,男人。 Django的動態特性是使它如此之好的一個重要組成部分。如果你不打算使用一個荒謬的轉移量(比如說大於10 GB),我可以免費託管你。

+0

謝謝,這是一個非常友善的提議!儘管如此,我想繼續使用託管服務。 – 2008-12-11 05:41:16

0

要麼使用PHP CMS解決方案或獲得新的主機。爲什麼更復雜的事情呢? (真正的問題是你爲什麼使用Django(或任何框架)爲主要靜態網站?)

5

我的項目Cactus允許您使用django構建靜態網站。