适用于Web应用的灵活静态资源
项目描述
Fanstatic
Fanstatic是一个用于Python的智能静态资源发布器。有关更多信息以及如何使用它,请参阅:https://fanstatic.org
CHANGES
1.4 (2023-09-19)
删除Python 2遗留代码。 (支持在1.2版中删除)
根据
增加对Python 3.7和3.11的支持。
1.3 (2022-12-21)
增加对Python 3.9和3.10的支持。对旧版Python版本的shutil.which提供条件支持。
修复Trove分类器。
将测试移动到GitHub Actions。
使文档能够在Python 3上构建。
1.2 (2022-03-11)
功能
使用打包版本解析来确定是否从开发包安装了fanstatic库,并相应地设置库版本。
不兼容的更改
停止支持Python 2、3.5、3.6和3.7。
文档
更新文档以反映GitHub上仓库的当前位置。
1.1 (2019-01-22)
不兼容的更改
停止支持Python 2.6、3.2和3.3。
其他更改
增加对Python 3.5、3.6和3.7的支持。
1.0.0 (2018-01-16)
修复对新版依赖项和更改合约的测试。这也提高了Python 3的兼容性。
1.0a7 (2015-11-07)
确保在仅使用发布者的情况下,进程内部已准备注册表。
修复与rollups和slots相关的bug。
1.0a6 (2015-10-21)
允许在定义之后但使用之前修改资源的依赖项。这允许在泛型定义的包中添加后来需要的可选依赖项。这需要彻底重构依赖机制。
修复slot,以便在定义编译器后可以使用。
删除fanstatic.codegen。在足够多的案例中不适用。
1.0a5 (2014-02-09)
修复问题#87 “install-error-with-python3”
Fanstatic现在在可用时依赖于shutil.which(Python 3.3+)或在其他情况下使用shutilwhich库。这是因为which.py不再受支持。感谢Ivan Bulanov。
感谢Ivan Bulanov。
1.0a4 (2013-09-24)
同时设置用于HEAD请求的注入器。我们不希望我们包装的应用程序因DummyNeededResources抛出的NotImplementedError而窒息。
更新入口点,以便使用作为应用程序而不是过滤器使用的fanstatic Publisher,例如在paste.urlmap配置中。
1.0a3 (2013-08-12)
将NeededResources重构为可插拔的注入器系统。Fanstatic用户现在可以自定义如何将资源注入HTML中。
我们尽量保持这些更改与使用官方API的用户向后兼容。鼓励使用fanstatic内部的人员更新他们的代码。
引入“包含”对象;与打包、编译、调试/压缩模式以及rollup相关的责任从NeededResources类转移到Inclusion类。
1.0a2 (2013-05-25)
将包含的注入从
元素的开头移动到末尾。另请参阅https://groups.google.com/forum/?fromgroups#!topic/fanstatic/VT_WasfDtL4
此更改可能会破坏您的代码,但将资源包含在
的末尾可能是一个好主意。在sdist_compile中修复bug:编译分布中包含的所有包中的资源。
修复tox/travis设置并更新到buildout v2。
1.0a (2013-04-18)
添加对编译器和压缩器的支持。
默认情况下,fanstatic附带sass/less和coffeescript编译器和mincss/minjs/google closure压缩器。
0.16 (2012-12-10)
更新Bundle对象以共享Resource的API。
更新注入器以处理未在其头部显式设置字符集的HTML页面。
0.15 (2012-11-08)
在Slot中添加“默认”参数,以指定在need()中未指定其他资源时将填充的资源。感谢nilo。
确保发布的捆绑包携带正确的Content-Type头部。以前,所有捆绑包都使用text/html交付。感谢David Beitey。
0.14 (2012-10-30)
Alex Grönholm添加了python3和pypy支持。
使用tox在python2.6/2.7/3.2/3.3/pypy上进行测试。
将bitbucket仓库镜像到github,以便在travis-ci上运行测试
0.14a (2012-10-07)
移除了对Paste的依赖,用webob.static替代。
发布者不再发送ETags,这似乎是个不错的想法。根据Yahoo加速网站的最佳实践表示
如果你没有充分利用ETags提供的灵活验证模型,最好完全移除ETag。
更新了包设置,以兼容运行python setup.py test。
为跨Python版本测试添加了tox设置。
0.13.3 (2012-09-12)
不再在注入器和代理中间件中使用WebOb的wsgify装饰器,因为它处理父应用WSGI响应存在问题(https://github.com/Pylons/webob/issues/74)。
0.13.2 (2012-08-23)
修复了问题#78:“fanstatic.checksum.md5不可保证”,感谢takanao ENDOH。
0.13.1 (2012-08-16)
修复了由字符串‘快捷方式’创建的模式资源没有继承渲染器、捆绑、依赖参数的问题。
0.13 (2012-08-15)
DummyNeededResources没有使用slots参数。
尽管有文档说明,Resource.need()没有处理slots参数。
向Group.need().添加了slots参数。
0.12 (2012-08-05)
在代码示例中修复了文档,感谢Toby Dacre。
修复问题#74,除非force_bottom,否则不会在底部提供最小化.js,感谢Toby Dacre。
合并了请求#1“支持挂载在-/之外的WSGI应用”,感谢Éric Lemoine。
添加了打印CSS渲染器。
0.11.4 (2012-01-14)
当涉及多个库时,在应用资源排序时又出现了另一个问题。这次改变了library_nr的计算方式,以防止再次发生。
library_nr的目的是使其始终比该库所基于的任何库的最大library_nr高1。
在实践中,这并不总是会发生,因为每个资源都有自己的library_nr。在某些情况下,依赖于其他库的库中的资源会得到一个太低的library_nr,因为它们基于的资源也有太低的library_nr,即使在该库中可能存在具有更高library_nr的其他资源。这可能导致该库中所有资源的library_nr都太低。
现在已修复,将library_nr移到它最初应该保持的位置:库本身。现在每个库只计算一次,在应用程序运行期间第一次对资源进行排序之前。由于在需要排序资源时所有资源都已知晓,因此可以正确计算library_nr。
0.11.3 (2011-11-11)
0.11.2 (2011-05-19)
更新readthedocs.org的文档。
0.11.1 (2011-04-13)
在应用模式之前,合并资源(查找汇总)。
0.11 (2011-04-11)
添加捆绑支持:捆绑是一组资源,可以在一个HTTP请求中提供。捆绑URL由fanstatic注入器构建并由fanstatic发布者提供。
从Resource中移除了eager_superseder参数,因为这个参数未使用。
将Resource、Group、Bundle的功能抽象到基类Renderable和Dependable中。
改进了资源排序以包含在网页上。这是为捆绑支持做准备。排序现在更一致,无论资源以何种顺序_needed()。只要正确标记了依赖项,这不应破坏应用程序;如果现在资源的包含顺序不正确,请修复资源依赖项。
不再需要base_url(与过去不同);改进了base_url管理API,以便像zope.fanstatic这样的集成包有更明确的方式来管理此信息。
资源会检查它们所引用的文件是否存在。如果文件不存在,你会得到一个UnknownResourceError。
将UnknownResourceExtension异常重命名为UnknownResourceExtensionError。旧的异常名称仍然可用以保持向后兼容。
在开发过程中使用mtime代替md5来确定版本,以加快版本计算速度。对于不信任其文件系统的用户,仍然可以通过versioning_use_md5参数使用哈希方法。
0.10.1 (2011-02-06)
修复了问题#49。
0.10 (2011-01-19)
将
重命名为 。除非包以开发模式安装,否则使用Python包的版本作为库的版本标识符。如果没有版本或处于开发状态,则使用库目录内容的哈希作为版本标识符。 将资源模式合并为
和 。 仅当请求方法为GET或POST时,注入器组件才会设置所需的资源。
已将devmode参数重命名为recompute_hashes,以便更准确地反映其行为。当recompute_hashes为True时,会为每个请求重新计算哈希 - 这是默认行为。
0.9b (2011-01-06)
Fanstatic是对hurry.resource的基本重写。因此,Fanstatic与hurry.resource不兼容。以下是从hurry.resource 0.10版本以来的一些重要变更列表
基本的API清理和更改。
Fanstatic不再依赖于ZTK包,并提供了一些“纯”WSGI组件。这允许在不同基于WSGI的框架中实现更大的重用。
zope.fanstatic(hurry.zoperesource的重写)提供了Fanstatic与ZTK的集成。
Fanstatic添加了一个用于服务资源的WSGI组件,将其从应用程序框架中卸载。
Fanstatic通过为每个资源的每个版本计算一个唯一的URL来添加“无限”缓存功能。
Fanstatic使用py.test进行测试发现和执行。
在Fanstatic的文档方面投入了大量努力。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。