2012-06-20 57 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" />