Ticket #810: static.txt

File static.txt, 2.9 KB (added by EABinGA, 18 years ago)
Line 
1===================================
2Outputting static files with Django
3===================================
4
5This document explains how to serve static files using Django.
6
7Django provides you with an easy to use view to serve static content
8such as images or ``CSS`` files.
9
10.. admonition:: Note
11
12 Add some warning about using this only in development or whatever your
13 policy will be on this.
14
15See `the Django overview`_ for a quick introduction to URL configurations; this
16document will continue from there.
17
18.. _`the Django overview`: http://www.djangoproject.com/documentation/overview/#design-your-urls
19
20The static view
21===============
22
23Here's the example from that overview::
24
25 from django.conf.urls.defaults import *
26
27 urlpatterns = patterns('',
28 (r'^/articles/(?P<year>\d{4})/$', 'myproject.news.views.articles.year_archive'),
29 (r'^/articles/(?P<year>\d{4})/(?P<month>\d{2})/$', 'myproject.news.views.articles.month_archive'),
30 (r'^/articles/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d+)/$', 'myproject.news.views.articles.article_detail'),
31 )
32
33To serve static content, create a directory in a location of your choice
34to contain all your desired files and subdirectories. Now modify your
35URLconf similar to the following::
36
37 urlpatterns = patterns('',
38 (r'^/articles/(?P<year>\d{4})/$', 'myproject.news.views.articles.year_archive'),
39 (r'^/articles/(?P<year>\d{4})/(?P<month>\d{2})/$', 'myproject.news.views.articles.month_archive'),
40 (r'^/articles/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d+)/$', 'myproject.news.views.articles.article_detail'),
41 (r'^media/(?P<path>.*)', 'django.views.static.serve', {'document_root' : '/path/to/your/files/', 'show_indexes':True}),
42 )
43
44This will serve static content from your chosen directory and its subdirectories
45for all URLs beginning with /media. You must provide the ``document_root`` parameter
46to indicate where these files are to be found. The ``show_indexes`` parameter
47is optional, but if set to ``True``, the view will show a basic index of all the
48files in a given directory.
49
50If you would like to create your own template to customize the index view,
51you may create a template named ``static/directory_index``.
52
53This example of a ``static/directory_index`` template is identical to the default
54incuded with Django::
55
56 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
57 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
58 <head>
59 <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
60 <meta http-equiv="Content-Language" content="en-us" />
61 <title>Index of {{ directory }}</title>
62 </head>
63 <body>
64 <h1>Index of {{ directory }}</h1>
65 <ul>
66 {% for f in file_list %}
67 <li><a href="{{ f }}">{{ f }}</a></li>
68 {% endfor %}
69 </ul>
70 </body>
71 </html>
72
Back to Top