django/apache2服务媒体isn';我不从事生产
我在GCP VM实例上运行带有apache2的django mod_wsgi,当我在DEBUG=False上运行它时,静态文件工作正常,但当我检查它们时,媒体文件得到404,而服务器上显然存在这些文件。 我的配置基于以下django文档django/apache2服务媒体isn';我不从事生产,django,apache2,django-media,Django,Apache2,Django Media,我在GCP VM实例上运行带有apache2的django mod_wsgi,当我在DEBUG=False上运行它时,静态文件工作正常,但当我检查它们时,媒体文件得到404,而服务器上显然存在这些文件。 我的配置基于以下django文档 #settings.py MEDIA\u ROOT=os.path.join(PROJECT\u ROOT,“MEDIA”) MEDIA\u URL=os.environ.get(“MEDIA\u URL”,“/MEDIA/”) STATIC\u ROOT=os
#settings.py
MEDIA\u ROOT=os.path.join(PROJECT\u ROOT,“MEDIA”)
MEDIA\u URL=os.environ.get(“MEDIA\u URL”,“/MEDIA/”)
STATIC\u ROOT=os.path.join(PROJECT\u ROOT,“STATIC”)
STATIC\u URL=os.environ.get(“STATIC\u URL”,“/STATIC/”)
#apache2
别名/media//home/ubuntu/myshop/media/
别名/static//home/ubuntu/myshop/static/
要求所有授权
要求所有授权
已尝试重新启动apache2,甚至服务器,但都无法正常运行看起来您的别名有误
#apache2
Alias /media/ /home/ubuntu/myshop/media/
Alias /static/ /home/ubuntu/myshop/static/
<Directory /home/ubuntu/myshop/media>
Require all granted
</Directory>
#apache2
别名/media//home/ubuntu/myshop/media/
别名/static//home/ubuntu/myshop/static/
要求所有授权
别名有反斜杠,而目录语句没有 修复了我需要将配置添加到virtualhost文件端口80和443时遇到的https问题
<VirtualHost *:80>
...
Alias /media/ /home/ubuntu/myshop/media/
Alias /static/ /home/ubuntu/myshop/static/
<Directory /home/ubuntu/myshop/media>
Require all granted
</Directory>
<Directory /home/ubuntu/myshop/static>
Require all granted
</Directory>
...
</VirtualHost>
<VirtualHost *:443>
...
Alias /media/ /home/ubuntu/myshop/media/
Alias /static/ /home/ubuntu/myshop/static/
<Directory /home/ubuntu/myshop/media>
Require all granted
</Directory>
<Directory /home/ubuntu/myshop/static>
Require all granted
</Directory>
...
</VirtualHost>
...
别名/media//home/ubuntu/myshop/media/
别名/static//home/ubuntu/myshop/static/
要求所有授权
要求所有授权
...
...
别名/media//home/ubuntu/myshop/media/
别名/static//home/ubuntu/myshop/static/
要求所有授权
要求所有授权
...
从别名中删除反斜杠或在目录文件中添加反斜杠并不能解决问题,因此我将其与文档类似,这可能是一个权限问题。当您在打开调试的情况下导航时会发生什么情况,错误消息是什么?当我删除+static(“/media/”,document\u root=settings.media\u root)时,debug=True可以正常工作。我在控制台中找不到404权限看起来像DRWXRWX 5 www data www data 4096 Dec 21 13:18 media
<VirtualHost *:80>
...
Alias /media/ /home/ubuntu/myshop/media/
Alias /static/ /home/ubuntu/myshop/static/
<Directory /home/ubuntu/myshop/media>
Require all granted
</Directory>
<Directory /home/ubuntu/myshop/static>
Require all granted
</Directory>
...
</VirtualHost>
<VirtualHost *:443>
...
Alias /media/ /home/ubuntu/myshop/media/
Alias /static/ /home/ubuntu/myshop/static/
<Directory /home/ubuntu/myshop/media>
Require all granted
</Directory>
<Directory /home/ubuntu/myshop/static>
Require all granted
</Directory>
...
</VirtualHost>