django/apache2 服务媒体无法用于制作
django/apache2 serving media isn't working on production
我 运行ning django mod_wsgi 在 GCP VM 实例上使用 apache2,当我 运行 它在 DEBUG=False 时,静态文件工作正常,但媒体文件正在获取 404当我检查它们时,文件显然存在于服务器上。
我的 conf 基于以下 django 文档 https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/modwsgi/#serving-files
#settings.py
MEDIA_ROOT = os.path.join(PROJECT_ROOT, "media")
MEDIA_URL = os.environ.get("MEDIA_URL", "/media/")
STATIC_ROOT = os.path.join(PROJECT_ROOT, "static")
STATIC_URL = os.environ.get("STATIC_URL", "/static/")
#apache2
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>
尝试重新启动 apache2 甚至服务器,但都没有用
看起来你的别名是错误的...
#apache2
Alias /media/ /home/ubuntu/myshop/media/
Alias /static/ /home/ubuntu/myshop/static/
<Directory /home/ubuntu/myshop/media>
Require all granted
</Directory>
别名有反斜杠,而您的目录语句没有。
修复了这是一个 https 问题,我需要将配置添加到虚拟主机文件端口 80 和 443
<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>
我 运行ning django mod_wsgi 在 GCP VM 实例上使用 apache2,当我 运行 它在 DEBUG=False 时,静态文件工作正常,但媒体文件正在获取 404当我检查它们时,文件显然存在于服务器上。 我的 conf 基于以下 django 文档 https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/modwsgi/#serving-files
#settings.py
MEDIA_ROOT = os.path.join(PROJECT_ROOT, "media")
MEDIA_URL = os.environ.get("MEDIA_URL", "/media/")
STATIC_ROOT = os.path.join(PROJECT_ROOT, "static")
STATIC_URL = os.environ.get("STATIC_URL", "/static/")
#apache2
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>
尝试重新启动 apache2 甚至服务器,但都没有用
看起来你的别名是错误的...
#apache2
Alias /media/ /home/ubuntu/myshop/media/
Alias /static/ /home/ubuntu/myshop/static/
<Directory /home/ubuntu/myshop/media>
Require all granted
</Directory>
别名有反斜杠,而您的目录语句没有。
修复了这是一个 https 问题,我需要将配置添加到虚拟主机文件端口 80 和 443
<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>