I want to run my django project under gunicorn on localhost. I installed and integrated gunicorn. When I run:
python manage.py run_gunicorn
It works but there are no any static files (css and js)
I disabled debug and template_debug in settings.py (made them false), but it is still same. Am I missing something?
I call statics like:
{{ STATIC_URL }}css/etc....
Uvicorn doesn't seem to support static file serving, so you might need something else too (see e.g. https://www.uvicorn.org/deployment/#running-behind-nginx).
When in development mode and when you are using some other server for local development add this to your url.py
from django.contrib.staticfiles.urls import staticfiles_urlpatterns # ... the rest of your URLconf goes here ... urlpatterns += staticfiles_urlpatterns()
More info here
When in production you never, ever put gunicorn in front. Instead you use a server like nginx which dispatches requests to a pool of gunicorn workers and also serves the static files.
See here
Whitenoise
Post v4.0
http://whitenoise.evans.io/en/stable/changelog.html#v4-0
The WSGI integration option for Django (which involved editing wsgi.py) has been removed. Instead, you should add WhiteNoise to your middleware list in settings.py and remove any reference to WhiteNoise from wsgi.py. See the documentation for more details. (The pure WSGI integration is still available for non-Django apps.)
Pre v4.0
Heroku recommends this method at: https://devcenter.heroku.com/articles/django-assets:
Your application will now serve static assets directly from Gunicorn in production. This will be perfectly adequate for most applications, but top-tier applications may want to explore using a CDN with Django-Storages.
Install with:
pip install whitenoise pip freeze > requirements.txt
wsgi.py
:
import os from django.core.wsgi import get_wsgi_application from whitenoise.django import DjangoWhiteNoise os.environ.setdefault("DJANGO_SETTINGS_MODULE", "free_books.settings") application = get_wsgi_application() application = DjangoWhiteNoise(application)
Tested on Django 1.9.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With