【问题标题】:Make MEDIA_ROOT point to a website url instead of a local directory使 MEDIA_ROOT 指向网站 url 而不是本地目录
【发布时间】:2020-11-03 16:08:27
【问题描述】:

所以我有两个 Django 项目,一个主站点和一个子站点,它们都运行在具有不同域名的不同服务器上。媒体文件存储在主站点上并且只能发布到主站点,但子站点必须以某种方式访问​​这些媒体文件。

我如何配置 MEDIA_ROOT 设置(或其他,就此而言,在我的项目中),以便自动从我的主站点获取媒体文件。或者我可以进行哪些更改,以便在处理任何类型的媒体文件时添加一个(我的主站点的)固定 URL 作为前缀。

附:我正在使用 pythonanywhere(两个初学者/免费帐户,每个站点一个)。

【问题讨论】:

  • 这里是关于如何从 Amazon S3 提供图像的指南:medium.com/the-geospatials/… 您可以调整它以提供来自您的域而不是 Amazon 的 S3 域的图像

标签: django django-staticfiles static-files


【解决方案1】:

我认为您可以简单地忽略MEDIA_ROOT 并设置MEDIA_URLMEDIA_ROOT 用于获取资源,MEDIA_URL 用于构建 url。

@见https://docs.djangoproject.com/en/3.0/ref/settings/#std:setting-MEDIA_URL

请阅读MEDIA_STATIC_ 之间的区别。 MEDIA 用于用户上传的文件。

更多信息:

https://docs.djangoproject.com/en/3.0/topics/files/

https://docs.djangoproject.com/en/3.0/howto/static-files/

【讨论】:

  • 是的,我注释掉了 MEDIA_ROOT,并简单地提供了我的主站点媒体目录的 MEDIA_URL。直接工作..非常感谢。我只是认为 MEDIA_ROOT 在识别实际位置时以某种方式是必要的,而 MEDIA_URL 只是告诉你想向用户显示什么作为媒体 url - 但我想这不是它的工作原理。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 2018-01-28
  • 1970-01-01
相关资源
最近更新 更多