如何让 Plone 的 CSS 注册表加载新的 CSS 文件

How to get Plone's CSS Registry to load new CSS files

我正在尝试将 Plone 3.3.5 服务器升级到 4.3.6。但是,当我更新网站时,我发现该网站的 CSS 没有保留。如果我去我的 CSS 注册表,我发现我几乎所有的 CSS 都在产生 (resource not found or not accessible) 错误。

我的困惑似乎在于 Plone 如何定位和 links/imports 样式表,因为 Plone 似乎正在加载我的 CSS 的虚拟 none 并且几乎给我原始 HTML 在浏览器中。我假设 CSS 注册表正在从构建缓存中加载 CSS。有了这个假设,我定位的示例样式表位于:

Plone/buildout-cache/eggs/Products.NuPlone-1.0b3-py2.7.egg/Products/NuPlone/skins/nuplone_styles/base.css

当 CSS 注册表加载失败时,我注意到一些 CSS 正在通过这样的句柄加载:

++resource++tinymce.stylesheets/tinymce.css

但是这种格式不适用于 base.css 和其他格式。

所以我的问题是,鉴于我已经安装了一个新产品,其中包含一些 CSS,我如何让 Plone 定位到 CSS?

对于"skins" FS 文件夹内的资源,在portal_css 工具上注册的方法是简单地提供文件名,所以只需将其放在base.css.

如果这不起作用,可能是 nuplone_styles 皮肤文件夹未在 portal_skins 工具中正确注册。

所以转到 ZMI --> portal_skins --> 点击 "Properties" 并检查以下内容:

  • 用的是什么主题?您可能必须切换回 NuPlone(但我不确定它是否适用于 Plone 4)
  • nuplone_styles文件夹是否在使用主题的CMF图层列表中?

另请注意,将 nuplone_styles 层添加到另一个主题不是一个好主意。请考虑将您需要的CSS复制到custom目录中。

这不是答案,而是一些额外的解释,不适合评论:

"old"通过皮肤文件夹包含样式表的方式,只需要指定文件名,而不是完整路径,并且将通过遍历找到,即第一个找到带有根据名称,将被采取。如果多个文件同名,皮肤的顺序很重要。

另一种方法是通过浏览器包注册样式表,要有一个明确的路径到某个文件,它们必须以 +++resource++.

开头