AWS Elastic Beanstalk找不到Django应用程序的静态文件

问题描述 投票:0回答:1

我为我创建的Django应用在弹性beantalk上设置静态文件夹时遇到了一些麻烦。我试图让该应用程序在没有任何css / js / etc的情况下运行。我的文件结构是:

|.ebextensions
|    --django.config
|.elasticbeanstalk
|    --config.yml
|django_app
|    --core
|    --blog
|    --other apps..
|config
|    --settings
|        --base.py
|        --local.py
|        --production.py
|    --asgi.py
|    --urls.py
|    --wsgi.py
|static
|    --blog
|        --css/js/etc
|    --other apps
|manage.py
|requirements.txt
|secrets.json

在我的django.config中,我将其设置为:

option_settings:
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: config.settings.production
  aws:elasticbeanstalk:container:python:
    WSGIPath: config.wsgi:application
    NumProcesses: 3
    NumThreads: 20

并且对于我在base.py中的静态设置(production / local.py确实要导入base.py):

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.0/howto/static-files/
STATIC_URL = '/static/'
STATIC_ROOT = "static"

我在烧瓶上也有类似的问题,但并没有给我带来太大麻烦。我尝试遵循此处提供的一些解决方案,但目前还没有任何效果,或者我误解了某些内容。任何帮助表示赞赏!

python django amazon-web-services amazon-elastic-beanstalk static-files
1个回答
0
投票

您必须在django.config option_settings中添加一个附加选项,这取决于您使用的Elastic Beanstalk平台。

我认为您正在使用新平台platform/Python 3.7 running on 64bit Amazon Linux 2。如果是,请使用:

aws:elasticbeanstalk:environment:proxy:staticfiles:
    /static: static

但是如果您使用的是platform/Python 3.6 running on 64bit Amazon Linux或更早的版本,请使用:

aws:elasticbeanstalk:container:python:staticfiles:
    /static: static

您可以检查此link了解更多详细信息。

如果您不知道所使用的平台,则有不同的了解方式:

  • 通过终端,它出现在eb status命令的输出中。
  • 通过AWS控制台,在您的Elastic Beanstalk环境页面中提到了它。
© www.soinside.com 2019 - 2024. All rights reserved.