2012-06-20 129 views
9

我正在試驗Django Compressor在開發一塊css文件。我首先將{%compress%}標籤放在一個文件中,生成f6527e81a37c.css。然後我在兩個標籤之間加入了兩個css文件,但不是一個縮小的文件,而是兩個縮小的文件:f6527e81a37c.css和ee906624f953.css。最後,我想將所有的css塊壓縮並壓縮成一個縮小的文件,但將更多文件移動到壓縮標記中似乎沒有重新生成與css文件相關聯的鍵,即它仍然壓縮分成多個CSS文件,即使它們被封裝在同一個{%compress%}塊中。我試圖清除Django的memcache,刪除Compressor生成的/ static/CACHE /目錄,並使用Django Compressor附帶的compress管理命令,但是當我運行dev時仍然收到多個壓縮的css文件環境。是否可以進行某種更新,以便Django Compressor重新生成與{%compress%}塊中的文件關聯的css鍵? Compressor必須存儲以前的壓縮文件密鑰。Django壓縮器不再生壓縮CSS

壓縮的結果:

<link rel="stylesheet" href="/static/CACHE/css/f6527e81a37c.css" type="text/css" media="screen, projection" /> 
<link rel="stylesheet" href="/static/CACHE/css/ee906624f953.css" type="text/css" /> 
<link rel="stylesheet" href="/static/CACHE/css/7147db857125.css" type="text/css" media="screen, projection" /> 
<link rel="stylesheet" href="/static/CACHE/css/043e7d82b775.css" type="text/css" /> 

settings.py:

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    #other 
    'compressor.finders.CompressorFinder', 
) 
COMPRESS_ENABLED = True 
COMPRESS_OFFLINE = True 
COMPRESS_CSS_FILTERS = [ 
    #creates absolute urls from relative ones 
    'compressor.filters.css_default.CssAbsoluteFilter', 
    #css minimizer 
    'compressor.filters.cssmin.CSSMinFilter' 
] 
COMPRESS_JS_FILTERS = [ 
    'compressor.filters.jsmin.JSMinFilter' 
] 

回答

4

我發現我的答案是:

Django的壓縮機被打破css文件周圍那些包含媒體=「屏幕投影」在它們的屬性和那些不這樣做。

感謝您的回覆。

1

也就是說Django的壓縮機是如何工作的。每次改變一個新的CSS文件生成和使用。舊的不會被刪除。

只需刪除CACHE目錄中的所有css文件並重新加載頁面。之後將只有一個。

7

將相同的media屬性設置爲所有CSS聲明將有所幫助。

的結果是這樣的:

<link rel="stylesheet" href="/static/CACHE/css/f6527e81a37c.css" type="text/css" media="all" />