Skip to content

Commit

Permalink
Fixed #15974 -- Correctly link to static files handling in deployment…
Browse files Browse the repository at this point in the history
… docs. Thanks, RogueBean.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16491 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
jezdez committed Jul 1, 2011
1 parent 3b127e3 commit d138906
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 44 deletions.
40 changes: 21 additions & 19 deletions docs/howto/deployment/modpython.txt
Expand Up @@ -246,9 +246,9 @@ Django -- for serving media. Here are some good choices:
* A stripped-down version of Apache_ * A stripped-down version of Apache_
* Cherokee_ * Cherokee_


If, however, you have no option but to serve media files on the same Apache If, however, you have no option but to serve media or static files on the
``VirtualHost`` as Django, here's how you can turn off mod_python for a same Apache ``VirtualHost`` as Django, here's how you can turn off mod_python
particular part of the site:: for a particular part of the site::


<Location "/media"> <Location "/media">
SetHandler None SetHandler None
Expand All @@ -257,9 +257,9 @@ particular part of the site::
Just change ``Location`` to the root URL of your media files. You can also use Just change ``Location`` to the root URL of your media files. You can also use
``<LocationMatch>`` to match a regular expression. ``<LocationMatch>`` to match a regular expression.


This example sets up Django at the site root but explicitly disables Django for This example sets up Django at the site root but explicitly disables Django
the ``media`` subdirectory and any URL that ends with ``.jpg``, ``.gif`` or for the ``media`` and ``static`` subdirectories and any URL that ends with
``.png``:: ``.jpg``, ``.gif`` or ``.png``::


<Location "/"> <Location "/">
SetHandler python-program SetHandler python-program
Expand All @@ -271,11 +271,14 @@ the ``media`` subdirectory and any URL that ends with ``.jpg``, ``.gif`` or
SetHandler None SetHandler None
</Location> </Location>


<Location "/static">
SetHandler None
</Location>

<LocationMatch "\.(jpg|gif|png)$"> <LocationMatch "\.(jpg|gif|png)$">
SetHandler None SetHandler None
</LocationMatch> </LocationMatch>



.. _lighttpd: http://www.lighttpd.net/ .. _lighttpd: http://www.lighttpd.net/
.. _Nginx: http://wiki.nginx.org/Main .. _Nginx: http://wiki.nginx.org/Main
.. _TUX: http://en.wikipedia.org/wiki/TUX_web_server .. _TUX: http://en.wikipedia.org/wiki/TUX_web_server
Expand All @@ -285,22 +288,21 @@ the ``media`` subdirectory and any URL that ends with ``.jpg``, ``.gif`` or
Serving the admin files Serving the admin files
======================= =======================


Note that the Django development server automagically serves admin media files, Note that the Django development server automagically serves the static files
but this is not the case when you use any other server arrangement. You're of the admin app, but this is not the case when you use any other server
responsible for setting up Apache, or whichever media server you're using, to arrangement. You're responsible for setting up Apache, or whichever media
serve the admin files. server you're using, to serve the admin files.


The admin files live in (:file:`django/contrib/admin/media`) of the Django The admin files live in (:file:`django/contrib/admin/static/admin`) of the
distribution. Django distribution.


Here are two recommended approaches: We **strongly** recommend using :mod:`django.contrib.staticfiles` to handle
the admin files, but here are two other approaches:


1. Create a symbolic link to the admin media files from within your 1. Create a symbolic link to the admin static files from within your
document root. This way, all of your Django-related files -- code **and** document root.
templates -- stay in one place, and you'll still be able to ``svn
update`` your code to get the latest admin templates, if they change.


2. Or, copy the admin media files so that they live within your Apache 2. Or, copy the admin static files so that they live within your Apache
document root. document root.


Using "eggs" with mod_python Using "eggs" with mod_python
Expand Down
50 changes: 28 additions & 22 deletions docs/howto/deployment/modwsgi.txt
Expand Up @@ -55,12 +55,12 @@ just below the ``import sys`` line to place your project on the path. Remember t
replace 'mysite.settings' with your correct settings file, and '/path/to/mysite' replace 'mysite.settings' with your correct settings file, and '/path/to/mysite'
with your own project's location. with your own project's location.


.. _serving-media-files: .. _serving-files:


Serving media files Serving files
=================== =============


Django doesn't serve media files itself; it leaves that job to whichever Web Django doesn't serve files itself; it leaves that job to whichever Web
server you choose. server you choose.


We recommend using a separate Web server -- i.e., one that's not also running We recommend using a separate Web server -- i.e., one that's not also running
Expand All @@ -76,22 +76,29 @@ If, however, you have no option but to serve media files on the same Apache
``VirtualHost`` as Django, you can set up Apache to serve some URLs as ``VirtualHost`` as Django, you can set up Apache to serve some URLs as
static media, and others using the mod_wsgi interface to Django. static media, and others using the mod_wsgi interface to Django.


This example sets up Django at the site root, but explicitly serves ``robots.txt``, This example sets up Django at the site root, but explicitly serves
``favicon.ico``, any CSS file, and anything in the ``/media/`` URL space as a static ``robots.txt``, ``favicon.ico``, any CSS file, and anything in the
file. All other URLs will be served using mod_wsgi:: ``/static/`` and ``/media/`` URL space as a static file. All other URLs
will be served using mod_wsgi::


Alias /robots.txt /usr/local/wsgi/static/robots.txt Alias /robots.txt /usr/local/wsgi/static/robots.txt
Alias /favicon.ico /usr/local/wsgi/static/favicon.ico Alias /favicon.ico /usr/local/wsgi/static/favicon.ico


AliasMatch ^/([^/]*\.css) /usr/local/wsgi/static/styles/$1 AliasMatch ^/([^/]*\.css) /usr/local/wsgi/static/styles/$1


Alias /media/ /usr/local/wsgi/static/media/ Alias /media/ /usr/local/wsgi/media/
Alias /static/ /usr/local/wsgi/static/


<Directory /usr/local/wsgi/static> <Directory /usr/local/wsgi/static>
Order deny,allow Order deny,allow
Allow from all Allow from all
</Directory> </Directory>


<Directory /usr/local/wsgi/media>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias / /usr/local/wsgi/scripts/django.wsgi WSGIScriptAlias / /usr/local/wsgi/scripts/django.wsgi


<Directory /usr/local/wsgi/scripts> <Directory /usr/local/wsgi/scripts>
Expand All @@ -105,8 +112,8 @@ file. All other URLs will be served using mod_wsgi::
.. _Apache: http://httpd.apache.org/ .. _Apache: http://httpd.apache.org/
.. _Cherokee: http://www.cherokee-project.com/ .. _Cherokee: http://www.cherokee-project.com/


More details on configuring a mod_wsgi site to serve static files can be found .. More details on configuring a mod_wsgi site to serve static files can be found
in the mod_wsgi documentation on `hosting static files`_. .. in the mod_wsgi documentation on `hosting static files`_.


.. _hosting static files: http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#Hosting_Of_Static_Files .. _hosting static files: http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#Hosting_Of_Static_Files


Expand All @@ -115,22 +122,21 @@ in the mod_wsgi documentation on `hosting static files`_.
Serving the admin files Serving the admin files
======================= =======================


Note that the Django development server automagically serves admin media files, Note that the Django development server automagically serves the static files
but this is not the case when you use any other server arrangement. You're of the admin app, but this is not the case when you use any other server
responsible for setting up Apache, or whichever media server you're using, to arrangement. You're responsible for setting up Apache, or whichever media
serve the admin files. server you're using, to serve the admin files.


The admin files live in (:file:`django/contrib/admin/media`) of the Django The admin files live in (:file:`django/contrib/admin/static/admin`) of the
distribution. Django distribution.


Here are two recommended approaches: We **strongly** recommend using :mod:`django.contrib.staticfiles` to handle
the admin files, but here are two other approaches:


1. Create a symbolic link to the admin media files from within your 1. Create a symbolic link to the admin static files from within your
document root. This way, all of your Django-related files -- code **and** document root.
templates -- stay in one place, and you'll still be able to ``svn
update`` your code to get the latest admin templates, if they change.


2. Or, copy the admin media files so that they live within your Apache 2. Or, copy the admin static files so that they live within your Apache
document root. document root.


Details Details
Expand Down
2 changes: 1 addition & 1 deletion docs/howto/static-files.txt
Expand Up @@ -353,7 +353,7 @@ serving your site, the basic outline gets modified to look something like:
* On the server, run :djadmin:`collectstatic` to copy all the static files * On the server, run :djadmin:`collectstatic` to copy all the static files
into :setting:`STATIC_ROOT`. into :setting:`STATIC_ROOT`.
* Point your web server at :setting:`STATIC_ROOT`. For example, here's * Point your web server at :setting:`STATIC_ROOT`. For example, here's
:ref:`how to do this under Apache and mod_wsgi <serving-media-files>`. :ref:`how to do this under Apache and mod_wsgi <serving-files>`.


You'll probably want to automate this process, especially if you've got You'll probably want to automate this process, especially if you've got
multiple web servers. There's any number of ways to do this automation, but multiple web servers. There's any number of ways to do this automation, but
Expand Down
4 changes: 2 additions & 2 deletions docs/ref/contrib/admin/index.txt
Expand Up @@ -52,8 +52,8 @@ Other topics


.. seealso:: .. seealso::


For information about serving the media files (images, JavaScript, and CSS) For information about serving the static files (images, JavaScript, and
associated with the admin in production, see :ref:`serving-media-files`. CSS) associated with the admin in production, see :ref:`serving-files`.


``ModelAdmin`` objects ``ModelAdmin`` objects
====================== ======================
Expand Down

0 comments on commit d138906

Please sign in to comment.