在Prod中提供静态文件而不是媒体文件的站点

2024-05-19 23:02:45 发布

您现在位置:Python中文网/ 问答频道 /正文

设置.py:

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

我的本地服务器可以使用] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)选择媒体文件

但网站无法找到他们,并给出错误404

文件夹/etc/apache2/sites-enabled包含site.conf

文件/etc/apache2/sites-available/site.conf包含:

Alias /static /www/site/static
<Directory /www/site/static>
    Require all granted

</Directory>

Alias /media /www/site/media
<Directory /www/site/media>
    Require all granted

</Directory>

我可以在生成为http://site/static/imgs/img.png的url上找到一个静态文件 但是获取错误404,url生成为http://site/media/imgs/img.png

在第二种情况下: 所有文件看起来都一样,但是从文件/etc/apache2/sites-available/site.conf 我删除了媒体部分,并离开了

Alias /static /www/site/static
<Directory /www/site/static>
    Require all granted

</Directory>

现在服务器在debug打开的情况下提供媒体文件,但是在debug关闭的情况下提供404。 更让人困惑的是

在调试关闭的情况下,如何在服务器上提供媒体文件

在这两种情况下,图像文件都会动态生成并上传到文件夹中。 在这两种情况下,静态文件也能得到完美的服务


Tags: 文件服务器urlwwwetcsite情况static