【问题标题】:trouble updating media_root in django settings.py在 django settings.py 中更新 media_root 时遇到问题
【发布时间】:2012-02-08 04:04:16
【问题描述】:

我正在尝试设置 MEDIA_ROOT,但是当我在我的 settings.py 中设置它时,它似乎无法被识别。例如我的 settings.py 看起来像:

...

MEDIA_ROOT = '/static/files/'

...

在一个模板中(为了测试这个变化)——我试过了:

Media root: {{ MEDIA_ROOT }}
static url: {{STATIC_URL }}

静态 url 显示正常,我可以更新和更改它,这些更改会反映在测试模板中。但是媒体根始终是一个空字符串。开始使用 MEDIA_ROOT 是否需要一些额外的配置 - 如果是这样,有人可以指出我的文档吗?

【问题讨论】:

  • 你使用的是什么版本的 Django?这可能是相关的。
  • 实际上我认为 MEDIA_ROOT 和 STATIC_ROOT 在模板中可能不可用(?)...MEDIA_URL 和 STATIC_URL 似乎显示显示/并显示更新但两个 _ROOT 变量没有显示...我应该重新发布这个问题,因为我的问题是其他问题

标签: django django-settings django-staticfiles django-media


【解决方案1】:

默认情况下,您应该可以使用两个上下文变量(只要您在渲染模板时使用 RequestContext 实例:

MEDIA_URL -- 由django.core.context_processors.media提供

STATIC_URL -- 由django.code.context_processors.static提供

这两个上下文处理器都在默认列表中,您可以在 https://docs.djangoproject.com/en/1.3/ref/settings/#template-context-processors 看到

MEDIA_ROOT 应该是文件系统路径,用于在磁盘上加载和保存媒体。不应该有任何理由在模板中使用它。如果你真的需要访问它,编写你自己的上下文处理器来提供它很简单。

媒体处理器的文档,顺便说一句,位于https://docs.djangoproject.com/en/1.3/ref/templates/api/#django-core-context-processors-media

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-29
    • 2020-11-10
    • 2012-04-06
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 2018-09-28
    相关资源
    最近更新 更多