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

9
我已经通过官方文件和一些帖子了解了一些信息,但仍然感到困惑。据我所知,MEDIA_ROOT用于用户上传的图像和文件,STATIC_ROOT用于js、css等。至于MEDIA_URL,是用来检索图片的吗?而STATIC_URL则是用于链接js和css吗?
如果能为每个提供示例,我将不胜感激。

你最好提供一个更好的标题: - xiao 啸
1个回答

12

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

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

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

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

假设您在settings.py中的TEMPLATE_CONTEXT_PROCESSORS元组中添加了django.core.context_processors.mediadjango.core.context_processors.static,则可以使用这些URL(假设您已经有了). 在模板中通过{{MEDIA_URL}}和{{STATIC_URL}}来使用它们。以下是两个示例:

<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/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接