summaryrefslogtreecommitdiff
path: root/docs/narr/assets.rst
diff options
context:
space:
mode:
authorChris Rossi <chris@archimedeanco.com>2014-07-18 17:18:56 -0400
committerChris Rossi <chris@archimedeanco.com>2014-07-18 17:18:56 -0400
commitaa96dda157d39c57c0d2fe8399db0b2175fa83d2 (patch)
treef7b4750b226aadd6c4055c2e557c49d2ac957ab4 /docs/narr/assets.rst
parent002da7991f4433e5fd5a07489038a6bd2720a526 (diff)
downloadpyramid-aa96dda157d39c57c0d2fe8399db0b2175fa83d2.tar.gz
pyramid-aa96dda157d39c57c0d2fe8399db0b2175fa83d2.tar.bz2
pyramid-aa96dda157d39c57c0d2fe8399db0b2175fa83d2.zip
Take mcdonc's advice. This should be easier for users to understand.
Diffstat (limited to 'docs/narr/assets.rst')
-rw-r--r--docs/narr/assets.rst41
1 files changed, 27 insertions, 14 deletions
diff --git a/docs/narr/assets.rst b/docs/narr/assets.rst
index 642211f5b..7987d03a6 100644
--- a/docs/narr/assets.rst
+++ b/docs/narr/assets.rst
@@ -370,28 +370,18 @@ equivalent to:
.. code-block:: python
:linenos:
- from pyramid.static import (
- Md5AssetTokenGenerator,
- PathSegmentCacheBuster)
+ from pyramid.static import PathSegmentCacheBuster
# config is an instance of pyramid.config.Configurator
- cachebuster = PathSegmentCacheBuster(Md5AssetTokenGenerator())
config.add_static_view(name='static', path='mypackage:folder/static',
- cachebuster=cachebuster)
+ cachebuster=PathSegmentCacheBuster())
:app:`Pyramid` includes two ready to use cache buster implementations:
:class:`~pyramid.static.PathSegmentCacheBuster`, which inserts an asset token
in the path portion of the asset's URL, and
:class:`~pyramid.static.QueryStringCacheBuster`, which adds an asset token to
-the query string of the asset's URL. Both of these classes have constructors
-which accept a token generator function as an argument, allowing for the way a
-token is generated to be decoupled from the way it is inserted into a URL.
-:app:`Pyramid` provides a single asset token generator,
-:meth:`~pyramid.static.Md5AssetTokenGenerator`.
-
-In order to implement your own cache buster, see the
-:class:`~pyramid.interfaces.ICacheBuster` interface and the existing
-implementations in the :mod:`~pyramid.static` module.
+the query string of the asset's URL. Both of these classes generate md5
+checksums as asset tokens.
.. note::
@@ -400,6 +390,29 @@ implementations in the :mod:`~pyramid.static` module.
:class:`~pyramid.static.PathSegementCacheBuster` to
:class:`~pyramid.static.QueryStringCacheBuster`.
+In order to implement your own cache buster, you can write your own class from
+scratch which implements the :class:`~pyramid.interfaces.ICacheBuster`
+interface. Alternatively you may choose to subclass one of the existing
+implementations. One of the most likely scenarios is you'd want to change the
+way the asset token is generated. To do this just subclass an existing
+implementation and replace the :meth:`~pyramid.interfaces.ICacheBuster.token`
+method. Here is an example which just uses a global setting for the asset
+token:
+
+.. code-block:: python
+ :linenos:
+
+ from pyramid.static import PathSegmentCacheBuster
+
+ class MyCacheBuster(PathSegmentCacheBuster):
+
+ def __init__(self, config):
+ # config is an instance of pyramid.config.Configurator
+ self._token = config.registry.settings['myapp.cachebust_token']
+
+ def token(self, pathspec):
+ return self._token
+
.. index::
single: static assets view