8👍
If you use runserver and configure your app with DEBUG=True, then it will serve the admin files just like on your development machine. However, this is definitely not the recommended way to do it, and I would suggest that you put them on S3.
Using the django-storages app it’s very easy to configure collectstatic to automatically push all the admin files to S3. You can find directions here
8👍
Check out this post: http://matthewphiong.com/managing-django-static-files-on-heroku
If that doesn’t work for you try adding the following to your urls.py after the normal url pattern tuple. Make sure you have your STATIC_ROOT set and you’ve run collect static on your local environment all before pushing to heroku.
urlpatterns += patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.STATIC_ROOT,
}),
)
- Django-templates: Why doesn't {% if "string"|length > 10 %} work at all?
- Django.core.exceptions.ImproperlyConfigured
- Create multiple objects without multiple hits to the db in Django 1.8
- Returning CSV format from django-rest-framework?
8👍
just add these instead
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
using django 1.4.1
- Save the related objects before the actual object being edited on django admin
- Error "Could not load Boto's S3 bindings."
6👍
It seems little late compared to the asked date. But I got into this issue and spent 30 mins on what I did wrong. So here it is the magic solution for those who might fall in this trap.
There is some problem with Heroku’s django.contrib.staticfiles.urls
SOLUTION
You need to install dj-static
(Link to download) on your Heroku setup.
It’s a Django middleware utility that allows to properly serve static assets from production with a WSGI server like Gunicorn.
I hope this will help someone.
3👍
create ‘static’ folder into your ‘project_directory’.
set the ‘STATIC_ROOT’ path in ‘settings.py’ file which can serve your admin-site’s static files.
STATIC_ROOT = (os.path.join(os.path.dirname(__file__), '..', 'static'))
Add STATIC_ROOT in ‘/urls.py’
from django.conf import settings
urlpatterns += patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.STATIC_ROOT,
}),
)
Run the following command that will copy all the admin static files into project’s static folder.
python manage.py collectstatic
Now do git add, commit and push heroku master.
- Django Multiple Databases Fallback to Master if Slave is down
- Add functionality to Django FlatPages without changing the original Django App
- TypeError: __call__() missing 1 required positional argument: 'send' Django
- How to insert a row of data to a table using Django's ORM
2👍
If you are deploying to Heroku without using whitenoise (which I would suggest), definitely use dj_static https://pypi.python.org/pypi/dj-static!
I spent the past 3 hours trying to serve my files to heroku and dj_static worked within a matter of 2 minutes.
- How to write unit tests for django-rest-framework api's?
- For the django admin, how do I add a field to the User model and have it editable in the admin?
- Celery – No module named five
- How to upgrade Django on ubuntu?
- Python multiple inheritance function overriding and ListView in django
1👍
I got django admin working with following edits
urls.py(at the end)
import settings
urlpatterns += patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.STATIC_ROOT,
}),
)
Procfile
web: gunicorn hellodjango.wsgi -b 0.0.0.0:$PORT
0👍
Follow this to fix all static related issues with Django and heroku.
In your settings.py
paste this at the end
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
TEMPLATE_DIRS = (
os.path.join(BASE_DIR,'templates'),
)
STATIC_URL = '/static/'
Your template for a particular app should be in app_name/templates/app_name/
When you render template this is how you will specify template name
in views.py
.....
return render(request,'app_name/template_name.html',context)
For static files
place your files here:
project_folder/app_name/static/app_name/css
project_folder/app_name/static/app_name/js
project_folder/app_name/static/app_name/img
to access your static file use path app_name/css/style_name.css
If you follow this, all your static files will load up fine in heroku as well as in your local development machine.
- Django raises MultiValueDictKeyError in File Upload
- Django admin – select reverse foreign key relationships (not create, I want to add available)
- Best way to reference the User model in Django >= 1.5