debian-quixote3/doc/static-files.txt

52 lines
1.7 KiB
Plaintext

Examples of serving static files
================================
The ``quixote.util`` module includes classes for making files and
directories available as Quixote resources. Here are some examples.
Publishing a Single File
------------------------
The ``StaticFile`` class makes an individual filesystem file (possibly
a symbolic link) available. You can also specify the MIME type and
encoding of the file; if you don't specify this, the MIME type will be
guessed using the standard Python ``mimetypes.guess_type()`` function.
The default action is to not follow symbolic links, but this behaviour
can be changed using the ``follow_symlinks`` parameter.
The following example publishes a file with the URL ``.../stylesheet_css``::
# 'stylesheet_css' must be in the _q_exports list
_q_exports = [ ..., 'stylesheet_css', ...]
stylesheet_css = StaticFile(
"/htdocs/legacy_app/stylesheet.css",
follow_symlinks=1, mime_type="text/css")
If you want the URL of the file to have a ``.css`` extension, you use
the external to internal name mapping feature of ``_q_exports``. For
example::
_q_exports = [ ..., ('stylesheet.css', 'stylesheet_css'), ...]
Publishing a Directory
----------------------
Publishing a directory is similar. The ``StaticDirectory`` class
makes a complete filesystem directory available. Again, the default
behaviour is to not follow symlinks. You can also request that the
``StaticDirectory`` object cache information about the files in
memory so that it doesn't try to guess the MIME type on every hit.
This example publishes the ``notes/`` directory::
_q_exports = [ ..., 'notes', ...]
notes = StaticDirectory("/htdocs/legacy_app/notes")