AWS Elastic Beanstalk 找不到 Django App 的静态文件
AWS Elastic Beanstalk can not find static files for Django App
我在为我创建的 django 应用程序设置弹性 beanstalk 上的静态文件夹时遇到了一些问题。我设法让应用程序达到 运行 而没有任何 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"
我在使用 flask 时遇到了类似的问题,但并没有给我带来这么大的麻烦。我尝试遵循此处提供的一些解决方案,但目前还没有任何效果,或者我误解了某些内容。感谢您的帮助!
您必须在 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 环境页面中提到它。
我在为我创建的 django 应用程序设置弹性 beanstalk 上的静态文件夹时遇到了一些问题。我设法让应用程序达到 运行 而没有任何 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"
我在使用 flask 时遇到了类似的问题,但并没有给我带来这么大的麻烦。我尝试遵循此处提供的一些解决方案,但目前还没有任何效果,或者我误解了某些内容。感谢您的帮助!
您必须在 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 环境页面中提到它。