跳转到主要内容

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)

  • 首次公开发布。

下载

项目详情


由以下支持