2012-07-29 34 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服务器,以从该目录作为你将任何其他静态网站。