pyramid.static
¶
- class static_view(root_dir, cache_max_age=3600, package_name=None, use_subpath=False, index='index.html')[source]¶
An instance of this class is a callable which can act as a Pyramid view callable; this view will serve static files from a directory on disk based on the
root_dir
you provide to its constructor.The directory may contain subdirectories (recursively); the static view implementation will descend into these directories as necessary based on the components of the URL in order to resolve a path into a response.
You may pass an absolute or relative filesystem path or a asset specification representing the directory containing static files as the
root_dir
argument to this class' constructor.If the
root_dir
path is relative, and thepackage_name
argument isNone
,root_dir
will be considered relative to the directory in which the Python file which callsstatic
resides. If thepackage_name
name argument is provided, and a relativeroot_dir
is provided, theroot_dir
will be considered relative to the Python package specified bypackage_name
(a dotted path to a Python package).cache_max_age
influences theExpires
andMax-Age
response headers returned by the view (default is 3600 seconds or one hour).use_subpath
influences whetherrequest.subpath
will be used asPATH_INFO
when calling the underlying WSGI application which actually serves the static files. If it isTrue
, the static application will considerrequest.subpath
asPATH_INFO
input. If it isFalse
, the static application will consider request.environ[PATH_INFO
] asPATH_INFO
input. By default, this isFalse
.Note
If the
root_dir
is relative to a package, or is a asset specification the Pyramidpyramid.config.Configurator
method can be used to override assets within the namedroot_dir
package-relative directory. However, if theroot_dir
is absolute, configuration will not be able to override the assets it contains.
- class ManifestCacheBuster(manifest_spec, reload=False)[source]¶
An implementation of
ICacheBuster
which uses a supplied manifest file to map an asset path to a cache-busted version of the path.The
manifest_spec
can be an absolute path or a asset specification pointing to a package-relative file.The manifest file is expected to conform to the following simple JSON format:
{ "css/main.css": "css/main-678b7c80.css", "images/background.png": "images/background-a8169106.png", }
By default, it is a JSON-serialized dictionary where the keys are the source asset paths used in calls to
static_url()
. For example:>>> request.static_url('myapp:static/css/main.css') "http://www.example.com/static/css/main-678b7c80.css"
The file format and location can be changed by subclassing and overriding
parse_manifest()
.If a path is not found in the manifest it will pass through unchanged.
If
reload
isTrue
then the manifest file will be reloaded when changed. It is not recommended to leave this enabled in production.If the manifest file cannot be found on disk it will be treated as an empty mapping unless
reload
isFalse
.New in version 1.6.
- static exists(path)¶
Test whether a path exists. Returns False for broken symbolic links
- static getmtime(filename)¶
Return the last modification time of a file, reported by os.stat().
- property manifest¶
The current manifest dictionary.
- class QueryStringCacheBuster(param='x')[source]¶
An implementation of
ICacheBuster
which adds a token for cache busting in the query string of an asset URL.The optional
param
argument determines the name of the parameter added to the query string and defaults to'x'
.To use this class, subclass it and provide a
tokenize
method which acceptsrequest, pathspec, kw
and returns a token.New in version 1.6.
- class QueryStringConstantCacheBuster(token, param='x')[source]¶
An implementation of
ICacheBuster
which adds an arbitrary token for cache busting in the query string of an asset URL.The
token
parameter is the token string to use for cache busting and will be the same for every request.The optional
param
argument determines the name of the parameter added to the query string and defaults to'x'
.New in version 1.6.