2012-07-29 38 views
0

我工作在一個非常小規模的網站,我的學校(低於每天100個用戶),想知道是否有辦法太存儲靜態文件Django的服務器上,而不是部署第二臺服務器來管理靜態文件。谷歌搜索轉起來的東西像下面這樣:https://docs.djangoproject.com/en/dev/howto/static-files/,但我不知道是否有一個更簡單的方法來做到這一點,即使它是不是很有效,Django的服務器上。Django的:規模非常小的網站上的靜態內容

+0

爲什麼不使用簡單的東西,比如[Flask](http://flask.pocoo.org/)?如果你只是提供靜態文件,那麼使用一個超出你的方式的微框架可能會容易得多,而不是處理所有的django的設置。 (除非你需要django管理員加載文件或其他東西)。 – 2012-07-30 01:11:07

+0

@JeffTratner這只是靜態的CSS和JavaScript文件。 – 2012-07-30 01:34:12

+0

這絕對有道理。 – 2012-07-30 01:43:31

回答

3

是的,它當然有可能使用相同的服務器來服務靜態文件。該文檔給出這樣使用Apache/mod_wsgi的https://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/modwsgi/#serving-files

如果一個例子,但是,你沒有選擇,而是爲媒體文件在同一個Apache虛擬主機作爲Django的,你可以設置Apache服務於某種網址爲靜態媒體和其他使用mod_wsgi接口的Django。

值得注意的是,當文檔引用使用單獨的Web服務器時,它並不一定意味着另一個盒子(虛擬或物理)只是一個單獨的服務器,爲服務靜態資源而優化。從https://docs.djangoproject.com/en/1.4/howto/static-files/#serving-static-files-from-a-dedicated-server

大多數較大的Django應用程序使用單獨的Web服務器(即,也不是運行Django的服務器)來提供靜態文件。該服務器通常運行不同類型的Web服務器 - 速度更快但功能更少。

一個共同的設置將在阿帕奇/ mod_wsgi的,Gunicorn或uWSGI的前面,這對於一個小網站可以在一臺服務器上完成的WSGI服務器上運行Nginx的靜態資源。

2

如果「Django的服務器」,你的意思是由python manage.py runserver運行開發服務器,我會反對這項建議。

在任何類型的生產環境中運行Django開發服務器以及通過它提供靜態文件是一個糟糕的主意。我不認爲staticfiles應用程序甚至可以讓你如果DEBUG = FALSE。但是,如果你的意思是通過服務於Django應用程序的同一個web服務器(lighttpd,apache,nginx)來提供靜態內容,那麼你可以通過在項目目錄中運行python manage.py collectstatic來輕鬆地完成所有靜態文件到一個目錄和配置Web服務器,以從該目錄作爲你將任何其他靜態網站。