Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django/apache2服务媒体isn';我不从事生产_Django_Apache2_Django Media - Fatal编程技术网

django/apache2服务媒体isn';我不从事生产

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

我在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.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>