2009-09-10 26 views

回答

2

這是可以做到,優雅的程度只是改變......我明白這是過渡,所以它可能不是一定要很漂亮。

如果你必須爲靜態文件提供Twisted服務,那麼你必須在django中一起破解這些文件的proxy-through,或者在整個事物的前面扔東西。此外,Perlbal與VPATH可以做到這一點,它會採取正則表達式的網址,使他們擊中正確的服務。

如果您不必使用扭曲,有很多不同的方法來做到這一點。你仍然可以使用Perlbal或類似的東西來提供靜態文件,從長遠來看,你應該有這些東西。

+1

我們包含Twisted作爲託管Sage Notebook的便捷方式,因此第二個選項無可奈何。 將Django的請求代理到Twisted似乎是合理的,但它似乎通過讓Twisted直接爲它們提供服務而取消了性能提升。我會運行一些基準。謝謝! – 2009-09-10 14:01:00

-1

除非我誤解了這個問題,爲什麼不在直到Django(即在Apache /代理級別)之前將/ doc/static url重寫爲Twisted?

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

+0

我們使用Twisted來爲我們的文件服務,沒有其他抽象層 - 至少對於本地安裝。因此使用''mod_rewrite''是不可能的。 – 2009-09-10 13:55:24

3

對如何在雙絞線上運行的Django看看this link:(從博客複製指令)

  1. easy_install的扭曲
  2. easy_install的Django的
  3. 利潤!
  4. django-admin.py startproject命令FOO
  5. 創建myapp.py用下面的代碼:

    從django.core.handlers.wsgi進口WSGIHandler

    申請= WSGIHandler()

  6. 出口DJANGO_SETTINGS_MODULE = foo.settings

  7. twistd來 - 沒有網絡--wsgi = myapp.application

的意見再往下還有如何成爲媒體與雙絞線直接的例子是通過前請求到Django的:從

來處理媒體文件只使用 「static.File」 「twisted.web」like so:staticrsrc = static.File(os.path.join(os.path.abspath(「。」), 「mydjangosite/media」))然後將 添加到該資源的根目錄資源 像這樣:root。putChild(「媒體」, staticrsrc)

聲明:我沒有嘗試這樣做我自己,但博客文章似乎相當最近和筆者願意回答問題。

編輯:也有關於如何讓它工作here,這似乎包括服務器直接與Twisted靜態文件服務器上的說明的主題上寫了一篇文章。

+0

第一個鏈接已關閉。 – g19fanatic 2013-11-13 15:17:09