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

部署Django到Elastic Beanstalk时配置staticfiles命名空间报错求助

解决Amazon Linux 2环境下EB部署Django的静态文件配置错误

错误原因

你遇到的Unknown configuration setting错误,是因为Amazon Linux 2的Elastic Beanstalk环境不再支持aws:elasticbeanstalk:container:python:staticfiles这个配置命名空间——这个是旧版Amazon Linux 1的专属配置项,在AL2中已被废弃。

修复步骤

1. 更新.ebextensions/django.config配置

删除原配置中aws:elasticbeanstalk:container:python:staticfiles的块,替换为AL2支持的静态文件代理配置,并添加自动收集静态文件的命令:

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: ebdjango.wsgi:application
  # AL2专用的静态文件代理配置
  aws:elasticbeanstalk:environment:proxy:staticfiles:
    /static/: static/

container_commands:
  01_collectstatic:
    command: "python manage.py collectstatic --noinput"

2. 确认settings.py配置有效性

你当前的settings.py配置是正确的,无需修改:

STATIC_URL = '/static/'
    
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'frontend/views/build/static')
]

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

3. 重新部署

运行eb create或eb deploy重新部署项目即可。

原理说明

  • AL2环境用Nginx作为反向代理,静态文件转发需通过aws:elasticbeanstalk:environment:proxy:staticfiles命名空间配置,其中/static/: static/表示将/static/路径的请求转发到项目根目录下的static文件夹(即你设置的STATIC_ROOT)。
  • container_commands中的collectstatic命令会自动把STATICFILES_DIRS里的静态文件复制到STATIC_ROOT,确保Nginx能访问到这些文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:57:50