3

我想在我的 ZCML 文件中使用类似下面的 ZCML 片段来提供目录中的静态 HTML 文件。文件必须通过诸如“cmf.ManagePortal”、“zope.ManageContent”或类似的权限来保护。

<browser:resourceDirectory
directory="resource"
name="myresource"
permission="zope.ManageContent" />

目前,普通的 html 文件被解析为 zope 页面模板,这不是我想要的。根据http://bluebream.zope.org/doc/1.0/manual/browserresource.html#directory-resource .html,.pt 和 .zpt 扩展名被解析为页面模板。

我只想按原样提供 html。

我知道<plone:static ...>plone.resource 可以使用哪些权限,但它不支持设置权限,这是我想为我的用例设置的权限。

我正在寻找以下之一的指导:

a) 一种“取消注册 .html 扩展名,使其在资源目录中不被解析为页面模板的方法。

b) 一种将权限应用到使用声明的静态目录的方法 <plone:static ...>

添加到我的 ZCML 但不支持设置权限时,以下内容有效:

<include package="plone.resource" />
    <plone:static
      type="theme"
      name="build"
      directory="_build/html"
  />
4

1 回答 1

0

我只能想象一个猴子补丁从标准库的 mimetypes.types_map 字典中弹出一个条目。也许您会想要弹出键“.htm”,然后重新配置您的 Sphinx 扩展输出,这样您就可以保持“.html”完好无损。

您可以直接在包的init .py 上编写代码,或者在 ZCA 中使用collective.monkeypatcher 注册它。

于 2015-09-04T00:32:46.763 回答