浏览器视图zcml for =“IPloneSiteRoot”返回404

时间:2011-09-28 12:30:41

标签: plone zope

我想知道其他人之前是否见过这个:

我有以下ZCML:

<browser:page
  for="*"
  name="workflow_action"
  class=".bika_listing.WorkflowAction"
  permission="zope.Public"
/>

当我尝试访问siteroot / workflow_action时,Plone告诉我“这个页面似乎不存在......”

正在读取ZCML - 如果我在ZCML中导致错误,则Plone无法启动。

我尝试过=“Products.CMFPlone.interfaces.IPloneSiteRoot”,结果相同。

WorkflowAction中的代码根本没有被调用 - 如果我将pdb放在__call__中,它就不会被激活。

我有两个类似的ZCML定义用于不同的上下文,它们工作正常,看起来像这样:

<browser:page
  for="bika.lims.interfaces.IAnalysisRequest"
  name="workflow_action"
  class=".analysisrequest.WorkflowAction"
  permission="zope.Public"
/>

如果我删除这些其他视图,只在系统中保留一个名为“工作流”的视图(IPloneSiteRoot或“*”),结果是相同的。

这看起来很简单 - 我不知道我可以在这里提供哪些其他信息?

使用Plone 4.0.7。

一定是我!?

2 个答案:

答案 0 :(得分:3)

很可能您的browserview在__init__()方法中引发异常,因此异常被忽略并且从不显示,结果通常是404错误。

答案 1 :(得分:0)

在私有状态文件夹中添加Solgema.NavigationPortlet portlet时遇到类似的问题,然后我发现浏览器:navigation.py中的页面navTreeitem引发了一个KeyError,导致客户端浏览器发出404响应。

感谢Giacomo的回答。