Django中的静态文件和媒体文件有什么区别?

我正在转向Django 1.3,并发现媒体和静态文件的分离有点混乱。 以下是默认settings.py样子:

 # Absolute filesystem path to the directory that will hold user-uploaded files. # Example: "/home/media/media.lawrence.com/media/" MEDIA_ROOT = '' # URL that handles the media served from MEDIA_ROOT. Make sure to use a # trailing slash if there is a path component (optional in other cases). # Examples: "http://media.lawrence.com/media/", "http://example.com/media/" MEDIA_URL = '' # Absolute path to the directory that holds static files. # Example: "/home/media/media.lawrence.com/static/" STATIC_ROOT = '' # URL that handles the static files served from STATIC_ROOT. # Example: "http://media.lawrence.com/static/" STATIC_URL = '/static/' 

我应该把什么放入MEDIA_ROOTSTATIC_ROOT ? 如果这些是不同的目录? 有什么不同?

静态文件是为JavaScript /图像等,但媒体文件是用户上传的内容。

正如Uku Loskit所说,静态文件适用于应用程序的CSS文件,JavaScript文件,图像等等。媒体文件通常是用户或pipe理员可上载的文件。

通常你会希望MEDIA_ROOTSTATIC_ROOT是独立的目录。 请记住, STATIC_ROOT是pipe理命令collectstatic将放置所有find的静态文件。 在生产环境中,当给定以STATIC_URL开头的请求时,可以将Web服务器configuration为从STATIC_ROOT提供文件。 如果您使用Django devserver进行开发,它将自动提供静态文件。

因此,staticfiles应用程序可以从应用程序媒体上解开用户上传的媒体,从而使部署,备份和版本控制更加容易。 在静态文件应用程序之前,开发人员通常将媒体文件与静态应用程序资源混合在一起。

1.3静态文件的文件一直在稳步提高。 有关更多细节,请参阅how-to 。