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

Python Django中的静态文件和媒体文件有什么区别?,python,django,Python,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 MED

我现在转到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\u ROOT
STATIC\u ROOT
中输入什么?这些应该是单独的目录吗?区别是什么?

静态文件用于javascript/图像等,而媒体文件用于用户上传的内容。

正如Uku Loskit所说,静态文件用于应用程序的css文件、javascript文件、图像等。媒体文件通常是用户或管理员可上传的文件

通常,您希望
MEDIA\u ROOT
STATIC\u ROOT
成为单独的目录。请记住,
STATIC\u ROOT
是管理命令
collectstatic
将放置其找到的所有静态文件的位置。在生产环境中,当给出以
STATIC\u URL
开头的请求时,您可以将Web服务器配置为从
STATIC\u ROOT
提供文件服务。如果您使用Django devserver进行开发,它将自动为静态文件提供服务

因此,staticfiles应用程序将用户上载的介质与应用程序介质分离,从而使部署、备份和版本控制更容易。在使用staticfiles应用程序之前,开发人员通常将媒体文件与静态应用程序资产混合使用


静态文件的1.3文档一直在稳步改进;有关更多详细信息,请查看。

关于仍将内容存储到媒体中的应用程序的说明。例如contrib.admin。我现在应该符号链接到我的项目媒体文件夹还是静态文件夹?因为根据您的回答,这些文件现在属于静态文件。@mongoose_za-管理员应用程序现在有一个静态文件夹,不再使用媒体。如果您使用staticfiles应用程序,则不再需要符号链接管理员的媒体文件。请参阅本文