2011-04-04 124 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/