首页 > 解决方案 > 无法在服务器上提供 Django 媒体文件?

问题描述

我正在使用 Django 版本 - 2.0.6。并在谷歌计算引擎 VM 实例上运行服务器。

我的 apache 文件未配置为以不同方式为生产基地和本地设置提供服务。当前设置从 base.py 和 local.py 运行。

我已经像这样配置了我的媒体和静态文件:

我的设置模块(base.py 和 local.py):

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

STATIC_ROOT = os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), "static-root")



MEDIA_URL = '/media/'

MEDIA_DIR = os.path.join(BASE_DIR,'media')

MEDIA_ROOT = os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), "media-root")

我的 urls.py:

urlpatterns = [
....
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

当我尝试上传任何媒体文件时,它不会保存在“MEDIA_ROOT”位置,而是保存在“MEDIA_DIR”中。

如何在生产中服务 media_root 和 media_dir?(/var/www/venv)

静态文件可以正常工作。

层次结构

/var/www/ ----->media-root
               >static-root
               >venv--->src--->manage.py
                              >media
                              >static
                              >other apps & settings

标签: pythondjangomedia

解决方案


推荐阅读