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

在cPanel部署二级域名Django应用时静态文件加载失败求助

解决cPanel二级域名下Django静态文件加载失败问题

1. 核对Django静态配置参数

  • 打开项目settings.py,确认以下关键配置:
    • STATIC_URL = '/static/'(二级域名下无需额外修改此参数)
    • STATIC_ROOT必须指向cPanel中二级域名对应文档根目录下的static文件夹,例如你的二级域名文档根是/home/your_username/public_html/subdomain,则设置STATIC_ROOT = os.path.join(BASE_DIR, 'public_html/subdomain/static')
    • 确保INSTALLED_APPS列表中包含django.contrib.staticfiles

2. 重新执行collectstatic并检查权限

  • 在cPanel终端或本地项目根目录运行命令:python manage.py collectstatic,确认终端输出显示所有静态文件已成功复制到STATIC_ROOT指定路径
  • 进入cPanel文件管理器,调整静态文件权限:
    • 所有静态文件夹权限设为755
    • 所有静态文件(css/js/img等)权限设为644

3. 配置二级域名的.htaccess规则

  • 在二级域名的文档根目录(如public_html/subdomain)找到.htaccess文件,添加以下规则到Django重写规则的最前端,确保静态请求不会被转发到WSGI:
    RewriteRule ^static/ - [L]
    
  • 完整的.htaccess示例(适配WSGI部署):
    RewriteEngine On
    RewriteRule ^static/ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ passenger_wsgi.py [L]
    

4. 验证静态文件可访问性

  • 直接在浏览器地址栏输入静态文件的完整URL,比如https://sub.yourdomain.com/static/css/main.css:
    • 若返回404,检查STATIC_ROOT路径是否与文件实际存放位置一致,同时确认cPanel中二级域名的文档根目录配置正确
    • 查看浏览器控制台的网络请求错误,确认请求路径与STATIC_URL配置是否匹配

5. 排查教程中的误区

  • 部分旧教程默认针对主域名部署,未考虑二级域名的文档根独立配置,需确保STATIC_ROOT严格对应二级域名的可访问目录,而非主域名的public_html根目录

内容的提问来源于stack exchange,提问作者y2k95

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:30:47