1

我继承了一个 Plone 安装(2.5 版)。将它升级到 3.3.5 至关重要。

我建立了一个测试环境并让旧版本工作。我设置了 3.3.5 并完成了迁移步骤。现在,每当我转到一个页面时,我都会得到:

Macro Expansion failed
exceptions.KeyError: 'header'

我查看了 front_page 模板(我认为这就是它的名称),它在前面和中间列出了该错误。我尝试删除宏标记,它给了我一个关于宏需要在选项卡中的错误。

通过查看更多文档,看起来 Plone 已经不再使用宏。是否有快速解决方案让我们的网站按原样工作,或者我们是否需要重新编写?

已编辑:从评论中提到了需要升级的附加组件。我怎么知道我是否有附加组件?我如何知道它们是否需要升级?如何了解如何升级它们?文档充满了“whats”,但“Hows”却很少。

已编辑:我通过查看旧版本发现了标题问题(旧安装中有一个标题模板,但新安装中没有,必须弄清楚如何将其放入其中),现在它给了我一个错误关于 user-macro="scripts/macros/jsrenderer" 并且如果我删除它,则有一个用于 css。这些看起来像是 plone 的标准条目(因为当我在谷歌上搜索这些时会出现完全相同的语法......但我无法在任何地方找到宏的位置。这在版本 3 中是否发生了变化?

编辑:我想我现在已经控制住了,在两个装置之间来回跳跃。这样的痛苦。

如果您需要任何代码,请告诉我。谢谢你的帮助。

4

1 回答 1

3

我只能给出调试此错误的提示。你可以尝试的是:

  • 你能define-macro="header"在代码中找到一个吗?如果没有,这就是您的模板尝试查找并失败的内容。

  • 在 ZMI 中,检查 portal_skins -> 属性选项卡。我认为大多数视图(模板)都映射为文件系统目录文件夹。这些需要在每个皮肤层中注册。每个条目的顺序很重要,因为这是查找宏的方式。检查每一层是否有权访问每个目录视图。*

  • 检查自定义产品是否定义了另一个“main_template.pt”,它(重新)定义了不同的宏。

  • 根据我的经验,页面模板中发生了很多自定义。在回溯中,您应该找到发生错误的模板。尝试查找use-macro=""可能指向不同或不再存在的宏的语句。

此外,带有宏的无页面模板仍在使用中。祝你好运!

于 2012-09-10T22:03:14.993 回答