2011-04-04 59 views
3

什么是使用collective.xdv管理css文件版本控制的正确方法?静态css文件和xdv

现在我使用nginx直接服务css。我试图在css_registry中导入它们,但如果我更改文件,合并的css不会更新,我的意思是,它的版本号(例如rescsstylesheets-cachekey4931.css中的4931)不会增加。

我使用plone 4.04,有什么提示吗?

+1

我想使用的版本号缓存。 – martino 2011-04-04 12:12:09

回答

3

这不是版本号。这是portal_css工具,它将CSS文件合并并缓存在一起以获得更好的性能。

在开发过程中,您必须启用CSS/JS调试才能实时查看更改。转到ZMI - > portal_css/javascript并检查“调试模式”标志是否打开。

如果我没有错,从plone 4.x开始,如果您正在调试模式下运行实例(bin/instance fg或bin/client fg),则默认情况下启用此功能。如果这没有发生,请检查你的zope.conf中的“debug-mode = on”。

+1

我想要使用缓存的版本号。 – martino 2011-04-04 12:11:21

1

您可以轻松地从Zope提供CSS文件。如果您使用plone.app.caching,则静态资源(CSS和JS)将永久缓存在浏览器中。

然后你只需在从Plone的CSS复制你的rules.xml中是这样的:

<!-- use styles and JavaScript resources from Plone ResourceRegistries --> 
<drop theme="/html/head/link" /> 
<drop theme="/html/head/style" /> 
<append theme="/html/head" content="/html/head/link | /html/head/style" /> 
+1

好吧,但我不希望这个浏览器缓存css永远,有没有办法来处理css版本?我的意思是,如果我更改css,我需要部署一个新的稳定版本,增加缓存键号或改变CSS名称。 – martino 2011-04-04 10:24:54

+1

我明白了。如果你想要一个新的缓存键(也就是'版本'),你也可以在portal_css中启用调试模式并立即重新禁用它。这应该会生成一个新的缓存键。 – zupo 2011-04-04 18:59:23

3

单击保存在portal_css ZMI管理界面将重新合并,并更改资源的版本号。

+1

好吧,但如果我不添加任何CSS版本不会改变。无论如何,我不想使用GUI – martino 2011-04-04 15:11:42

+1

CSS文件版本编号超出了XDV/Diazo的范围。要么使用内置的Plone,要么将自己的版本号添加到css链接中。 – 2011-04-08 15:45:34

1

你可以这样做:

from Products.CMFCore.utils import getToolByName 
csstool = getToolByName(context, 'portal_css') 
csstool.manage_saveStylesheets() 

您可以使用旧的,但是好的Products.DocFinderTab借鉴Zope的API更多:

http://svn.plone.org/svn/collective/Products.DocFinderTab/