我继承了Plone安装(版本2.5)。将它升级到3.3.5至关重要。
我设置了一个测试环境并使旧版本正常工作。我设置了3.3.5并完成了迁移步骤。现在每当我进入一个页面,我都会得到:
Macro Expansion failed
exceptions.KeyError: 'header'
我查看了front_page模板(我认为这就是它的名称)并且它在前面和中间列出了错误。我尝试删除宏标记,它给我一个关于需要在标签内的宏的错误。
从查看更多文档看起来Plone已经不再使用宏了。是否有快速解决方案让我们的网站按原样运行,或者我们是否需要重新编写?
编辑:从评论中提到需要升级的附加组件。我怎么知道我是否有附加组件?我怎么知道他们是否需要升级?我如何找到如何升级它们?文档中充满了“什么”,但在“Hows”中却非常稀疏。
编辑:我通过查看旧版本找到了标题问题(旧版安装中有一个标题模板,但新版本中没有标题模板,必须弄清楚如何在其中获取它),现在它正在给出我关于user-macro =“scripts / macros / jsrenderer”的错误,如果我删除了有一个用于css。这些看起来像plone的标准条目(因为当我谷歌这些时出现完全相同的语法......但我无法在任何地方找到宏的位置。这是在版本3中发生了什么变化?
编辑:我想我现在已经控制住它,在两个装置之间来回跳跃。这样的痛苦。
如果您需要任何代码,请告诉我。谢谢你的帮助。
答案 0 :(得分:3)
我只能提供调试此错误的提示。您可以尝试的是:
您能在代码中找到define-macro="header"
吗?如果没有,那就是模板试图查找并失败的内容。
在ZMI中,检查portal_skins - >属性选项卡。我认为大多数视图(模板)都映射为文件系统目录文件夹。这些需要在每个皮肤层中注册。 每个条目的顺序很重要,因为这是查找宏的方式。检查每个图层是否都可以访问每个目录视图。*
检查自定义产品是否定义了另一个'main_template.pt',它(重新)定义了不同的宏。
根据我的经验,页面模板中发生了很多自定义。在回溯中,您应该找到错误发生的模板。尝试查找use-macro=""
语句,这些语句可能指向不同或不存在的宏。
此外,没有使用宏的页面模板仍在使用中。祝你好运!