MEDIA_ROOT,MEDIA_URL,STATIC_ROOT,STATIC_URL和ADMIN_MEDIA_PREFIX的文档定义是什么?

时间:2011-07-25 08:19:57

标签: django

我已经通过官方文档和一些帖子阅读了有关它们的内容,但我仍然感到困惑。据我现在所知,MEDIA_ROOT用于用户上传的图像和文件,STATIC_ROOT用于js,css等。至于MEDIA_URL,用于检索图像吗? STATIC_URL用于链接js和css吗?

如果为每个例子提供示例,我将非常感激。

1 个答案:

答案 0 :(得分:11)

MEDIA_ROOT和STATIC_ROOT是文件所在的本地目录,例如:

MEDIA_ROOT = '/home/CDBean/mydjangoproject/media/' # notice the trailing slash
STATIC_ROOT = '/home/CDBean/mydjangoproject/static/'

MEDIA_URL和STATIC_URL是这些文件夹的可公开访问的网址。这意味着当您部署Django项目时,您必须告诉您的Web服务器在您指定的URL下发布这些文件夹。

MEDIA_URL = 'http://media.example.com/' # trailing slashes here, too
STATIC_URL = 'http://static.example.com/'

然后,您可以使用这些网址(假设您已通过{{MEDIA_URL}}和{{STATIC_URL}}在模板中的settings.py中添加了django.core.context_processors.mediadjango.core.context_processors.static TEMPLATE_CONTEXT_PROCESSORS元组。两个例子:

<link href="{{STATIC_URL}}css/main.css" media="screen" rel="stylesheet" type="text/css" />
<img src="{{MEDIA_URL}}random.jpg"/>
现在,何时使用什么?基本上你是对的,但我强烈建议你阅读https://docs.djangoproject.com/en/dev/howto/static-files/