Reputation: 3
I'm trying to deploy a Django application on Elastic Beanstalk, and had problems with my css files in the static folder generated by python3 manage.py collectstatic
being read by my html templates.
I digged deeper, and turns out when I SSH into the EC2 instance that is hosting my application, the file /etc/nginx/conf.d/elasticbeanstalk/01_static.conf
contains
location /static/ {
alias /var/app/current/static;
access_log off;
}
My application only works when I manually change this file to contain
location /static/ {
alias /var/app/current/static/;
access_log off;
}
The only change here is that I added a trailing slash at the end of the alias. I looked this up more, and was recommended that I create a 01_static.config
file in the .ebextensions
directory within the root directory, which I did and populated with the following:
files:
"/etc/nginx/conf.d/elasticbeanstalk/01_static.conf":
mode: "000755"
owner: root
group: root
content: |
alias /var/app/current/static/;
However, this doesn't seem to do anything. Does anyone have solutions as to how I can add the trailing slash without manually SSHing into an EC2 instance on every deployment? Thanks in advance.
Upvotes: 0
Views: 200
Reputation: 433
You can also generate static files with container commands. Try the config files below in ebextensions.
container_commands: 01_collectstatic:
command: "source /var/app/venv/*/bin/activate && python manage.py collectstatic --noinput"
leader_only: true
option_settings: aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: YOURAPP.settings
--EDIT-- My bad I didn't understand your question. You can make custom settings for nginx using extension.
Try the following config files if you are using AL2.
option_settings:
aws:elasticbeanstalk:environment:proxy:staticfiles:
/static: static
Answer from here Static files configuration in AWS not working has this setting combined with my previous answer.
If that doesn't workout, you can also try to make a custom settings for nginx.
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-linux-extend.html.
Make a custom config files under .platform/nginx/conf.d/custom.config
Upvotes: 0