hurry.resource集成于Zope。
项目描述
hurry.resource的Zope集成
本软件包提供Zope集成功能。这意味着它负责以下三件事情
在整个请求/响应周期中维护所需的资源。
知道如何创建指向资源的URL。
确保资源引用自动插入HTML头部。
此库满足Zope Toolkit/Grok设置的这些条件。
我们将通过几个测试来演示它。请注意,实际测试的代码不在此文档中,而是在ftesting.zcml中描述的视图。
我们需要处于请求状态才能使这生效,所以让我们向一个在ftesting.zcml中设置的页面发起请求,该页面应包含一个资源
>>> from zope.testbrowser.testing import Browser >>> browser = Browser() >>> browser.handleErrors = False >>> browser.open('https://127.0.0.1/hurry.zoperesource.test_single') >>> print browser.contents <html> <head> <script type="text/javascript" src="https://127.0.0.1/@@/foo/a.js"></script> <BLANKLINE> </head> <body> <p>the widget HTML itself</p> </body> </html>
如果资源需要另一个资源,该资源也将自动包含
>>> browser.open('https://127.0.0.1/hurry.zoperesource.test_multiple') >>> print browser.contents <html> <head> <script type="text/javascript" src="https://127.0.0.1/@@/foo/a.js"></script> <script type="text/javascript" src="https://127.0.0.1/@@/foo/b.js"></script> <BLANKLINE> </head> <body> <p>the widget HTML itself</p> </body> </html>
让我们现在强制所有JavaScript资源在</body>标签之前包含,即在底部
>>> browser.open('https://127.0.0.1/hurry.zoperesource.test_bottom') >>> print browser.contents <html> <head> </head> <body> <p>the widget HTML itself</p> <script type="text/javascript" src="https://127.0.0.1/@@/foo/a.js"></script> <script type="text/javascript" src="https://127.0.0.1/@@/foo/b.js"></script></body> </html>
变更日志
0.7 (2010-10-01)
现在创建的资源目录已被注册为 IBrowserRequest,它是之前使用的 IDefaultBrowserLayer 的基类。因此,当应用程序使用的层不扩展 IDefaultBrowserLayer 时,例如 z3c.layer.pagelet,可以使用此包。
0.6 (2010-07-29)
更新以与 hurry.resource 0.10 及更高版本兼容。这使用入口点机制来配置任何库。
请注意,这需要基于 hurry.resource 的包,这些包已经更新到 hurry.resource 0.10 的定义入口点和包含资源路径的库的方式。有关更多信息,请参阅 hurry.resource 文档。
0.5 (2010-07-24)
删除了 zope.app.component 依赖。
为 ILibrary 而不是 Library 注册 ILibraryUrl 适配器,以便在适配器查找中更具体。
明确指定许可证为 ZPL。
0.4 (2009-12-16)
更新了所需的包。
使用更新的 hurry.resource 版本,该版本可以将其本身插入到 HTML 中。
0.3 (2008-12-05)
resource.need() 需要设置请求对象才能正常工作。这在测试中相当讨厌,因为测试通常没有设置请求对象。现在,在这种情况下,我们将返回一个虚拟的 NeededResources 对象(然后将被丢弃)。因此,在测试期间始终可以安全地调用 resource.need(),尽管如果找不到请求,则它将没有任何效果。
0.2 (2008-10-13)
添加了对在页面底部渲染片段的支持。当您调用 hurry.resource.bottom 时,标记为底部安全的资源将在网页底部而不是在 <head> 部分中渲染。当您调用 hurry.resource.bottom(force=True) 时,所有 .js 资源都将包含在底部。
0.1 (2008-10-11)
首次公开发布。