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

DEBUG设为False时静态文件无法加载的问题求助

解决Django在cPanel部署后DEBUG=False时静态文件无法加载的问题

核心原因

当DEBUG=False时,你在urls.py中通过static()添加的静态文件路由不会生效——Django在生产环境下不会负责静态文件的分发,必须让cPanel的Web服务器(通常是Apache)直接处理静态和媒体文件的请求。

分步解决方案

  • 确认collectstatic执行结果
    登录cPanel的文件管理器,检查/home/smartsbi/public_html/static目录下是否存在所有静态文件(css、js、图片等)。如果为空,重新在虚拟环境中执行python manage.py collectstatic,执行时注意确认文件是否成功复制,且目录所有者为smartsbi(避免权限问题)。

  • 配置Apache静态文件映射(通过.htaccess)
    在public_html目录下找到.htaccess文件(如果没有就新建一个),添加以下规则,让Apache直接处理/static和/media路径的请求:

    Alias /static /home/smartsbi/public_html/static
    <Directory /home/smartsbi/public_html/static>
        Require all granted
    </Directory>
    
    Alias /media /home/smartsbi/public_html/media
    <Directory /home/smartsbi/public_html/media>
        Require all granted
    </Directory>
    

    保存后重启Apache(cPanel中可通过"Restart Apache"功能操作)。

  • 检查媒体目录权限
    确保/home/smartsbi/public_html/media目录权限设为755,目录内文件权限设为644,且所有者为你的cPanel用户名smartsbi,避免Web服务器无法读取上传的媒体文件。

  • 验证ALLOWED_HOSTS配置
    在settings.py中确认ALLOWED_HOSTS已正确设置,比如:

    ALLOWED_HOSTS = ['你的域名.com', 'www.你的域名.com']
    

    若HOSTS配置错误,Django会拒绝请求,也可能间接导致静态文件加载失败。

  • 强制刷新浏览器缓存
    按Ctrl+Shift+R强制刷新页面,清除浏览器缓存的旧静态文件路径,确认新路径是否生效。

内容的提问来源于stack exchange,提问作者Pøyå Shadman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:56:15