You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生产环境下Django(DEBUG=False)结合Nginx部署时媒体文件无法加载的问题求助

生产环境下Django(DEBUG=False)结合Nginx部署时媒体文件无法加载的问题求助

大家好,我最近把Django项目部署到生产环境,已经设置了DEBUG=False,打算用Nginx来托管用户上传的媒体文件(比如图片),但遇到了棘手的问题,想请各位帮忙排查下。

具体问题是:当我在浏览器里直接访问媒体文件的URL(比如 http://<我的服务器IP>/media/sample.jpg)时,会返回404 Not Found错误。我确认过媒体文件确实存在于对应的文件夹中,Nginx服务处于运行状态,文件和文件夹的权限也配置正确,但就是没法正常加载图片。我不确定是Nginx的配置出了问题,还是Django这边有什么遗漏的设置。

以下是我的相关配置:

Nginx 配置

server {
    listen 80;
    listen [::]:80;
    server_name <my_server_ip>;

    location /media/ {
        alias /home/ubuntu_server02/cdo_portal/media/;
        autoindex on;
    }

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Django settings.py 相关配置

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

我已经尝试过的操作和预期结果:

  • 直接在浏览器访问媒体文件的完整URL,比如 http://<我的服务器IP>/media/sample.jpg
  • 预期图片能正常显示,但实际返回404错误
  • 反复核对了Nginx配置里的路径,确认alias指向的文件夹和实际存放媒体文件的路径完全一致,文件也确实存在

有没有朋友遇到过类似的情况?或者能给我一些排查方向的建议吗?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 09:33:04