Django template can't see CSS files
css, django, django-templates, python
Solution
in the "development only" block in your urls.py you need to change
(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': '/media'}),
to...
(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),
Problem
I'm building a django app and I can't get the templates to see the CSS files... My settings.py file looks like: ``` MEDIA_ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'media') MEDIA_URL = '/media/' ``` I've got the CSS files in /mysite/media/css/ and the template code contains: ``` <link rel="stylesheet" type="text/css" href="/media/css/site_base.css" />` ``` then, in the url.py file I have: ``` # DEVELOPMENT ONLY (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/media'}), ``` but the development server serves the plain html (without styles). What am I doing wrong? -- OK - I got it working based on what you folks have said. The answer is: settings.py: ``` MEDIA_ROOT = 'd://web//mysite//media//' #absolute path to media MEDIA_URL = '/mymedia/' #because admin already using /media ``` site_base.html: ``` <link rel="stylesheet" type="text/css" href="/mymedia/css/site_base.css" /> ``` urls.py ``` from mysite import settings if settings.DEBUG: urlpatterns += patterns('', (r'^mymedia/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), ) ``` And voila! It works.