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

Django部署Elastic Beanstalk静态配置失效,求自动修复方案

解决Elastic Beanstalk部署Django时Static文件无法访问的问题

你当前的.ebextensions/01_static.config无效的原因有两个:

  • 配置仅写入了alias单行内容,替换原文件后破坏了Nginx配置的完整结构(缺少location块的首尾部分),导致Nginx无法加载该配置
  • Elastic Beanstalk在部署流程中可能会重新生成01_static.conf文件,直接替换的时机可能早于EB生成文件的步骤

下面提供两种可靠的解决方法:

方法一:完整替换静态资源配置文件

在项目根目录的.ebextensions下创建(或修改)01_static.config,写入完整的Nginx location配置:

files:
  "/etc/nginx/conf.d/elasticbeanstalk/01_static.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
      location /static/ {
          alias /var/app/current/static/;
          access_log off;
      }

注意:配置文件不需要执行权限,所以mode设为000644即可,之前的000755是错误的。

方法二:用sed命令修改现有配置(更稳妥)

如果担心Elastic Beanstalk在部署后期覆盖配置文件,可以使用container_commands在部署流程的后期执行替换命令,确保修改生效:

container_commands:
  01_fix_static_alias_trailing_slash:
    command: |
      sed -i 's/alias \/var\/app\/current\/static;/alias \/var\/app\/current\/static\/;/' /etc/nginx/conf.d/elasticbeanstalk/01_static.conf

这个命令会精准匹配原配置中的alias行,替换为带末尾斜杠的版本,不会破坏其他配置内容。

验证方法

部署完成后,可以通过以下方式确认配置生效:

  1. 登录EC2实例,查看/etc/nginx/conf.d/elasticbeanstalk/01_static.conf文件内容,确认alias路径末尾已添加斜杠
  2. 访问应用的静态资源路径(如/static/css/style.css),检查是否能正常加载

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:23:34