django在生产中提供媒体文件(与PHP框架相比)

时间:2013-03-20 22:11:05

标签: django

我是django新手。我已经读过,在生产环境中部署的所有django项目都应该通过web服务器(如apache)提供媒体文件(上传)。我的问题是 - 为什么

有很多PHP框架 - 例如。 symfony 1和2 - 不遵守规则。通过Web服务器访问应用程序后,您无需根据部署的环境进行任何更改。在Web服务器上只配置了DOCUMENT_ROOT,这个目录中的某个位置就是上传目录 - 就是这样。您可以确定没有人会访问PHP,sql文件等等 - 这要归功于适当的框架架构和文档根目录。为什么django会有所不同?

编辑:此外,为不同的环境(例如this)准备不同的代码是一个非常糟糕的方法,因为你不能使用完全相同的代码来在不同的环境中部署项目(以及来自link仅对调试环境有意义。

1 个答案:

答案 0 :(得分:4)

因为使用PHP,您的代码将从Web服务器的公共目录以及静态和媒体文件中提供。因此,当您请求任何这些静态文件时,Web服务器直接为它们提供服务而不会执行任何PHP代码。

在Django中,您的代码单独运行,所有请求都由Django中的python代码处理。这对于提供静态文件效率很低,服务更有效,允许像Apache或Nginx这样的Web服务器直接为它们提供服务,而无需通过任何python代码。

相关问题