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

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -