Alex
Alex

Reputation: 929

Statics Files Django on Heroku Deployment

I have my app runnning in Heroku, everything works really good with my models and forms, but there is a problem, I can't see any of my styles neither for my templates not for Django Grappelli, how can I solve this problem?

Thank you.

Upvotes: 3

Views: 99

Answers (1)

Matt Stokes
Matt Stokes

Reputation: 4958

Check the path that your images/styles are trying to reference. Ensure that your STATIC_URL is a relative path. Also ensure that your STATIC_ROOT and STATIC_URL are not the same. Ex:

settings/base.py

from unipath import Path

# Project directory root assuming: yourapp.settings.base
PROJECT_DIR = Path(__file__).ancestor(3)

# Static files
STATIC_ROOT = PROJECT_DIR.child("static")

# URL prefix for static files.
STATIC_URL = '/static/'

This layout follows the directory structure similar to:

project_name/
|-- app 1
    |-- models.py
    |-- views.py
    ...

|-- project_name
    |-- settings
        |-- base.py
        |-- local.py
        |-- dev.py
        ...
         

Also by default Heroku should collectstatic when you upload your project however if you have modified this setting ensure to call:

python manage.py collectstatic

you can then check to see if static files are present in the specified folder (in the example above it would be in /static/

Upvotes: 2

Related Questions