python - Correct path/url for media files in django -
i using django 1.5.2 , having hard time understanding purpose of media directory vs. static directory , how include stylesheets in django project.
this directory structure:
django_books beer __init__.py admin.py models.py views.py random_book (same beer above) django_books (the actual django project; beer , random_book above apps) templates base.html beersall.html __init__.py settings.py urls.py views.py wsgi.py static css beers.css media css beers.css static css beers.css manage.py
my beersall.html template (the beer output correct, linking stylesheet wrong):
{% extends 'base.html' %} {% block content %} <div id="beer_list"> {% beer in beers %} {{ beer }}, {% endfor %} </div> {% endblock %}
my base.html file:
<html> <head> <link rel="stylesheet" type="text/css" href="/media/css/beers.css" /> <link rel="stylesheet" type="text/css" href="{{ static_url }}css/beers.css" /> <link rel="stylesheet" type="text/css" href="{{ media_url }}css/beers.css" /> <link rel="stylesheet" type="text/css" href="/static/css/beers.css" /> <link rel="stylesheet" type="text/css" href="/users/username/projects/django_books/media/beers.css" /> <link rel="stylesheet" type="text/css" href="/users/username/projects/django_books/static/beers.css" /> <link rel="stylesheet" type="text/css" href="/users/username/projects/django_books/django_books/static/beers.css" /> {% block extrahead %}{% endblock %} </head> <body> <div id="page_container"> {% block content %} {% endblock %} </div> </body> </html>
my settings.py file:
media_root = '/users/username/projects/django_books/media/' media_url = '/users/username/projects/django_books/media/' static_root = '' static_url = '/static/'
i should note using django development server, not apache.
the error in browser (developer console) says beers.css
404.
the url localhost:8000/beers/
, urls.py file correctly points , views.py correctly serves beersall.html template. how can link media?
edit
when change css link href value /users/username/projects/django_books/media/
still doesn't work.
edit 2
i've updated href
values show things i've tried. still not working...
user-uploaded files (by admins or site users) go media directory. static files files provided developers (or third-party apps).
set this:
# local disk paths media_root = '/users/username/projects/django_books/media/' static_root = '/users/username/projects/django_books/static/' # urls visible in browser's address bar media_url = '/media/' static_url = '/static/'
and in template use static_url
variable:
<link rel="stylesheet" type="text/css" href="{{ static_url }}css/beers.css" />
and move styles django_books/static/
directory.
Comments
Post a Comment