【问题标题】:Plone 3.3.5 upgrade brokenPlone 3.3.5 升级坏了
【发布时间】:2012-09-10 19:01:31
【问题描述】:

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

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

Macro Expansion failed
exceptions.KeyError: 'header'

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

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

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

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

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

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

【问题讨论】:

  • 如果你有任何插件,它们几乎肯定也需要升级。
  • 您可能在 portal_skins 中有一个自定义的 main_template -> 自定义
  • 正如我所提到的,我是克隆处女。我怎么知道我是否有任何附加组件?我怎么知道他们是否需要升级?如何了解如何升级它们?
  • 自定义插件不会突出,但您可以检查 ZMI、portal_quickinstaller 并检查文件系统中的非 plonish 产品。

标签: plone


【解决方案1】:

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

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

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

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

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

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

【讨论】:

  • 在哪里可以找到宏?它们被列为此处/header/macros/htmls_header 等...但我在我的文件系统中看不到该文件结构。
  • 你找到的就是所谓的path expressions。该语句的意思是,在最近的标头对象中使用 html_header 宏。 header 例如可以引用 header.pt。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-18
  • 2014-12-05
  • 2016-07-07
  • 2016-01-07
  • 2020-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多