我已经通过官方文档和一些帖子阅读了有关它们的内容,但我仍然感到困惑。据我现在所知,MEDIA_ROOT用于用户上传的图像和文件,STATIC_ROOT用于js,css等。至于MEDIA_URL,用于检索图像吗? STATIC_URL用于链接js和css吗?
如果为每个例子提供示例,我将非常感激。
答案 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.media
和django.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/。