如何在Django的Apache中提供媒体文件

jdzmm42g  于 2023-02-13  发布在  Apache
关注(0)|答案(1)|浏览(117)

我目前有一个Django站点在亚马逊Lightsail上运行,
我运行python manage.py collectstatic一个有所有的静态文件运行良好,但我有我的媒体文件的问题...我不能上传到我的项目。下面是我的代码
settings.py

DEBUG = False

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

urls.py

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

/opt/bitnami/apache 2/conf/虚拟主机/消息-http-虚拟主机.conf(也为消息-https-虚拟主机.conf编辑)

<IfDefine !IS_MESSAGES_LOADED>
    Define IS_MESSAGES_LOADED
    WSGIDaemonProcess messages python-home=/opt/bitnami/python python-path=/opt/bitnami/projects/messages
  </IfDefine>
  <VirtualHost 127.0.0.1:80 _default_:80>
    ServerAlias *
    WSGIProcessGroup messages
    Alias /robots.txt /opt/bitnami/projects/messages/static/robots.txt
    Alias /favicon.ico /opt/bitnami/projects/messages/static/favicon.ico
    Alias /static/ /opt/bitnami/projects/messages/static/
    Alias /media/ /opt/bitnami/projects/messages/media/
    <Directory /opt/bitnami/projects/messages/static>
      Require all granted
    </Directory>
    <Directory /opt/bitnami/projects/messages/media>
      Require all granted
    </Directory>
    WSGIScriptAlias / /opt/bitnami/projects/messages/messages/wsgi.py
    <Directory /opt/bitnami/projects/messages/messages>
      <Files wsgi.py>
        Require all granted
      </Files>
    </Directory>
  </VirtualHost>

models.py

message_audio = models.FileField(upload_to='audio/', null=True)
    message_image = models.ImageField(upload_to='message-pics/', null=True)

当我尝试上传文件时,我得到“服务器错误(500)”

zhte4eai

zhte4eai1#

使用绝对路径到媒体目录并确保他们有读和写权限

message_audio = models.FileField(upload_to='/opt/bitnami/projects/messages/media/audio/', null=True)
message_image = models.ImageField(upload_to='/opt/bitnami/projects/messages/media/message-pics/', null=True)

相关问题