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

Django网站部署Apache后图片无法显示(404错误)求助

Django部署Apache后图片无法显示(404错误)求助

错误截图:错误截图

我用Django框架搭建的网站部署到Apache服务器后,图片无法显示且报404错误(查看截图)。已确认路径正确,csv等其他文件可正常获取,本地服务器运行时图片显示完全正常,恳请帮忙解决!

我尝试修改路径指定方式,但问题仍未解决。

代码片段

settings.py

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.2/howto/static-files/


STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static/')
]

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

metrics.html

{% extends "base.html" %}
{% block content %}
{% load static %}
....

<img src="{% static "images/metrics.jpg" %}" alt="metrics" height="250px" width="500px" />

解决步骤:

  1. 执行静态文件收集命令
    生产环境部署必须运行python manage.py collectstatic,把static目录下的所有文件(包括图片)复制到STATIC_ROOT指定的staticfiles文件夹。本地开发时Django自动处理静态文件,但Apache依赖这个收集后的目录读取资源。

  2. 配置Apache静态文件映射
    确保Apache配置文件中添加了/static/路径的别名映射,指向STATIC_ROOT的绝对路径:

    Alias /static/ /你的项目绝对路径/staticfiles/
    <Directory /你的项目绝对路径/staticfiles/>
        Require all granted
    </Directory>
    

    注意路径结尾的斜杠要对应,避免匹配错误。

  3. 检查文件权限
    Apache进程需要读取staticfiles目录及文件的权限,执行以下命令调整:

    chmod -R 755 /你的项目绝对路径/staticfiles/
    chown -R www-data:www-data /你的项目绝对路径/staticfiles/
    

    (注:CentOS系统的Apache运行用户为apache,需替换对应用户名)

  4. 验证文件存在性
    手动检查staticfiles/images/目录下是否存在metrics.jpg,同时注意Linux服务器区分文件名大小写,避免本地Windows开发时的大小写差异导致匹配失败。

内容的提问来源于stack exchange,提问作者Ravi Kumar Reddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 07:23:25