Django 中的静态和媒体 URL

Posted

技术标签:

【中文标题】Django 中的静态和媒体 URL【英文标题】:Static and media urls in Django 【发布时间】:2017-06-21 03:30:32 【问题描述】:

在我的设置文件中有 STATIC_URL = '/static/' 并可以从目录 app/static/css/filename 访问静态文件(css 文件)。如果我将此添加到设置文件中 MEDIA_URL = '/media/' 是否可以从app/media/filename 访问媒体文件?我的 settings.py 中没有 MEDIA_ROOTSTATIC_ROOT

【问题讨论】:

【参考方案1】:

MEDIA_URL 用于用户上传的文件。这些文件未签入,因此您的应用中不应有 media 目录。

要使媒体文件正常工作,您必须在设置中设置MEDIA_ROOT。有关如何提供媒体文件的说明,请参阅 the docs。

【讨论】:

那为什么要获取静态文件? 我不确定我是否理解您的问题。要deploy static files,需要设置STATIC_ROOT并运行collectstatic,将文件复制到根目录。然而在开发中,Django staticfiles app 将为您提供app/static/ 目录中的文件。 兄弟,我的静态根目录尚未设置,仍在获取 css(静态文件)。 如我所说,如果你在开发中(DEBUG = True),那么你不需要设置STATIC_ROOT

以上是关于Django 中的静态和媒体 URL的主要内容,如果未能解决你的问题,请参考以下文章

静态 django 不调用媒体文件

从 S3 提供 Django 的静态和媒体文件

在 Django 开发期间提供静态媒体:为啥不 MEDIA_ROOT?

Django 获取静态媒体文件

Django中的静态URL和CSS [重复]

Django - MEDIA_ROOT 和 MEDIA_URL