我想‘注销’一个用configure zcml和指令注册的资源目录
我已经卸载了我的自定义插件,它最初注册了资源目录,但其他软件包仍然能够调用/++resource++my.package,并从卸载的插件中引入资源……有没有一个指令来正确地注销它,或者通过ZMI或以某种方式一次性脚本?
参考:http://plone.org/products/dexterity/documentation/manual/five.grok/browser-components/resource-directories
发布于 2012-10-30 17:32:39
通过Plone控制面板安装和卸载持久配置,以及从构建中实际删除鸡蛋,您会感到困惑。
资源目录在ZCML包文件中注册,并且不是持久的。为了不加载这些ZCML文件,您必须从buildout中删除包egg。
如果出于某种原因,您需要由包egg提供的代码,但又绝对不希望注册资源,则需要使用z3c.unconfigure包再次注销资源目录。
除非他们主动干预任何事情,否则我认为你没有必要这样做。请注意,在Plone站点中仍然提供资源URL是绝对没有坏处的。
发布于 2012-10-30 17:36:25
如果你不使用它,为什么不从你的包中删除不必要的注册呢?
另一种选择是为特定的浏览器层注册资源目录(我相信这在ZCML中是可能的),然后在GenericSetup中使用browserlayer.xml将该层与您的包一起安装。不过,这要复杂得多。
然而,正如Martijn所说,将它留在原处并没有什么坏处。
发布于 2012-10-30 13:55:02
您想要使用z3c.unconfigure
http://pypi.python.org/pypi/z3c.unconfigure
https://stackoverflow.com/questions/13133173
复制相似问题