pyramid.static

class static_view(root_dir, cache_max_age=3600, package_name=None, use_subpath=False, index='index.html', reload=False, content_encodings=())[源代码]

此类的实例是可调用的,它可以作为 Pyramid view callable ;此视图将根据 root_dir 您提供给它的构造函数。

目录可能包含子目录(递归);静态视图实现将根据URL的组件在必要时下降到这些目录中,以便将路径解析为响应。

您可以传递绝对或相对文件系统路径或 asset specification 将包含静态文件的目录表示为 root_dir 此类构造函数的参数。

如果 root_dir 路径是相对的,并且 package_name 论证是 Noneroot_dir 将被视为相对于python文件所在的目录 电话 static 居住。如果 package_name 提供了名称参数,并且 root_dir 提供了 root_dir 将被视为相对于python package 指定的 package_name (指向python包的虚线路径)。

cache_max_age 影响 ExpiresMax-Age 视图返回的响应头(默认为3600秒或一小时)。

use_subpath 影响是否 request.subpath 将用作 PATH_INFO 调用实际上为静态文件提供服务的底层wsgi应用程序时。如果是 True ,静态应用程序将考虑 request.subpath 作为 PATH_INFO 输入。如果是 False ,静态应用程序将考虑request.environ [PATH_INFO] 作为 PATH_INFO 输入。默认情况下,这是 False .

reload 控制是维护文件缓存还是按请求查询资产子系统,以确定哪些文件可用。默认情况下,这是 False 并且无法识别在进程运行时添加的新文件。

content_encodings 中支持的可选文件编码的列表。 Accept-Encoding HTTP标头。使用中定义的文件扩展名可以找到替代文件 mimetypes.encodings_map 。编码的资产将随 Content-Encoding 设置为选定编码的标头。如果资源包含替代编码,则 Accept-Encoding 值将添加到响应的 Vary 标题。默认情况下,该列表为空,不支持任何备选方案。

备注

如果 root_dir 是相对于 package ,或者是 asset specification 这个 Pyramid pyramid.config.Configurator 方法可用于重写命名的 root_dir 包相对目录。但是,如果 root_dir 是绝对的,配置将无法覆盖它包含的资产。

在 2.0 版本发生变更: 已添加 reloadcontent_encodings 选项。

find_best_match(request, files)[源代码]

返回 (path | None, encoding)

find_resource_path(name)[源代码]

返回资源的绝对路径,或者 None 如果它不存在的话。

get_possible_files(resource_name)[源代码]

返回已排序的列表 (size, encoding, path) 条目。

get_resource_name(request)[源代码]

返回请求的资源的计算名称。

不保证返回的文件存在。

class ManifestCacheBuster(manifest_spec, reload=False)[源代码]

实现 ICacheBuster 它使用提供的清单文件将资产路径映射到缓存总线版本的路径。

这个 manifest_spec 可以是绝对路径或 asset specification 指向包相关文件。

清单文件应符合以下简单JSON格式:

{
    "css/main.css": "css/main-678b7c80.css",
    "images/background.png": "images/background-a8169106.png",
}

默认情况下,它是一个JSON序列化字典,其中键是调用中使用的源资产路径 static_url() . 例如:

>>> request.static_url('myapp:static/css/main.css')
"http://www.example.com/static/css/main-678b7c80.css"

文件格式和位置可以通过子类化和重写来更改。 parse_manifest() .

如果在清单中找不到路径,它将通过未更改的路径。

如果 reloadTrue 然后,清单文件将在更改时重新加载。建议不要在生产中启用此功能。

如果在磁盘上找不到清单文件,它将被视为空映射,除非 reloadFalse .

在 1.6 版本加入.

static exists(path)

测试路径是否存在。对于断开的符号链接返回false

static getmtime(filename)

返回由os.stat()报告的文件的上次修改时间。

property manifest

当前清单字典。

parse_manifest(content)[源代码]

解析 content 从中读取 manifest_path 到字典映射中。

子类可以重写此方法以使用除 json.loads 加载任何类型的文件格式并返回一致的字典。

class QueryStringCacheBuster(param='x')[源代码]

实现 ICacheBuster 它在资产URL的查询字符串中添加用于缓存总线的令牌。

可选的 param 参数确定添加到查询字符串的参数的名称,并默认为 'x' .

若要使用此类,请将其子类化并提供 tokenize 接受的方法 request, pathspec, kw 并返回一个令牌。

在 1.6 版本加入.

class QueryStringConstantCacheBuster(token, param='x')[源代码]

实现 ICacheBuster 它为资产URL的查询字符串中的缓存总线添加了一个任意标记。

这个 token 参数是用于缓存总线的令牌字符串,对于每个请求都是相同的。

可选的 param 参数确定添加到查询字符串的参数的名称,并默认为 'x' .

在 1.6 版本加入.