【问题标题】:Older Plone site missing many stylesheets较旧的 Plone 站点缺少许多样式表
【发布时间】:2011-10-10 21:52:35
【问题描述】:

我有一个 3 或 4 年前创建的 Plone 4 网站,此后几乎没有维护过。第三方安装了一个我从不满意的主题,但由于其他人似乎不在乎,所以我没有太在意。现在我被聘来更新主题,我发现旧网站的真正问题是许多标准的 .css 文件没有被包含在内。

当我将主题安装到一个全新的 Plone 站点时,它看起来不错,但是当我将它安装到旧站点时,例如 member.css 没有加载。

我可以通过从新站点中的 portal_setup 导出 cssregistry.xml 并将其加载到旧站点来修复它,但我宁愿找出错误的原因 - 应该安装什么产品成员.css?它看起来应该是 Products.CMFPlone(在我的例子中来自 Plone-4.0.7),那么我将如何强制它重新安装其注册表?

[编辑:事实上,我确实强制它重新安装它的注册表,方法是转到 portal_setup import 并重新导入“样式表注册表”步骤。这破坏了我的自定义主题和一些适配器(这很奇怪),所以我尝试重新导入所有步骤并破坏了一切。还好这只是一个测试副本!]

【问题讨论】:

  • 为什么不直接进入portal_css并重新激活css?
  • @vangeem 正如我所说,我拥有 cssregistry.xml(与使用portal_css 完全相同)但我想修复问题,而不仅仅是掩盖它。
  • 好吧,如果您提供了用于您尝试安装的主题的 cssregistry.xml 文件,将会有所帮助。所以可以肯定的是,在你安装主题之前,member.css 是包含在内的——直到你安装它之后它才会被删除。而且这只发生在旧网站上,而不是新的克隆网站上。
  • 另外,你说,“我有一个 3 或 4 年前创建的 Plone 4 网站。”我假设你的意思是你升级到plone 4?由于 plone 4 没有在 3 或 4 年前发布......
  • 也许一个更简单的答案会有所帮助:member.css 是基本配置文件的一部分,并安装在创建的每个站点上,除非您有人在 portal_css 中专门删除/禁用它或拥有第三方产品这样做。所以真正的修复 IMO 可能是重新启用 portal_css 中的 css 文件,就像我说的不更改 cssregistry.xml 或运行任何导入步骤...

标签: plone


【解决方案1】:

如果您有一个旧的和迁移的站点,我会进入 ZMI 并手动修复问题。 member.css 从一开始就是核心 Plone 的一部分。因此,如果未启用此功能,则有人对您的旧网站进行了手动更改。

通过 ZMI 修​​复一个损坏的站点比编写任何代码或配置文件来完成它要容易得多。

在我看来,如果你一直这样做,编写 GenericSetup 配置文件才有意义。因此不允许通过 ZMI 或 Plone 控制面板进行更改。您的策略代码中始终有一个扩展配置文件,它将创建一个完全反映实时站点的新站点。您为自己的更改编写升级步骤并运行这些步骤,而不是重新应用任何配置文件。您确保只使用表现良好的附加组件并使用升级步骤,或者您修复这些以使其正常运行。

但是所有这些都需要花费时间,只有在您希望不断更改您的网站并针对您的网站特定配置进行测试时才有意义。如果您生成的一次性站点在部署后不再更改,那么整个开销可能不值得。

【讨论】:

  • 关键似乎是“只使用表现良好的附加组件”。我在 Plone 中发现的最大问题是“表现相当不错”的附加组件——它们可以按照你的意愿行事,但只有在你将它们安装在实时系统中之后才会发现不良的副作用而(尽管这应该立即显而易见!)
【解决方案2】:

如果你有很多类似的追溯

Traceback (innermost last):
  Module ZPublisher.Publish, line 126, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 46, in call_object
Module zope.browserresource.file, line 202, in GET
Module zope.component._api, line 109, in getMultiAdapter
ComponentLookupError: ((<Products.Five.metaclass.DirContainedFileResource17 object at 0xde678ec>,
     <HTTPRequest, URL=http://127.0.0.1:8080/Plone/portal_css/Sunburst%20Theme/++resource++tinymce.stylesheets/tinymce.css>),
     <InterfaceClass zope.browserresource.interfaces.IETag>, u'')

在重新导入 cssregistry.xml 后,在前台 Tracebacks 中出现了一个损坏的布局,如下所示:

2011-10-10 08:42:32 ERROR Zope.SiteErrorLog 1318210952.260.0813518537427      http://127.0.0.1:8080/spirulinea/portal_css/Sunburst%20Theme/member.css
Traceback (innermost last):
Module ZPublisher.Publish, line 115, in publish
Module ZPublisher.BaseRequest, line 516, in traverse
Module ZPublisher.HTTPResponse, line 727, in debugError
NotFound:   Site Error

你可能和我遇到了同样的错误 正如http://tech.groups.yahoo.com/group/zms-developers/message/3674 所说的那样
(对我来说也是)降级到http://download.zope.org/Zope2/index/2.13.2 是关键。

[nota : 作为时间,我在同一个 Zope 实例上使用新的 Plone 没有遇到任何问题,很奇怪.. 毕竟,可能是您的自定义主题没有损坏]

【讨论】:

  • 谢谢你 - 你可能是对的,但现在已经很久了,我不确定我是否遇到了这样的错误(它们不会相同,因为那个主题是'不使用森伯斯特)。
猜你喜欢
  • 2014-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多