我不确定我做得对,但问题是:
django-compressor和lessc预处理程序COMPRESS_ENABLED是True时,一切正常COMPRESS_ENABLED是False时,CssAbsoluteFilter不再运行,这意味着所有相对图像URL都是相对的,因此被破坏(因为它们不是相对于CACHE目录的)我可以想出一个“聪明”的目录结构,其中相对路径解析到同一个文件,无论它们来自CACHE目录还是来自较少的文件目录,但这似乎是一个脆弱的解决方案。
当涉及到更少的+ django-compressor时,您通常如何工作?
发布于 2013-02-12 21:36:01
您可以使用一个简单的解决方法:
COMPRESS_PRECOMPILERS = (
('text/less', 'path.to.precompilers.LessFilter'),
)precompilers.py:
from compressor.filters.base import CompilerFilter
from compressor.filters.css_default import CssAbsoluteFilter
class LessFilter(CompilerFilter):
def __init__(self, content, attrs, **kwargs):
super(LessFilter, self).__init__(content, command='lessc {infile} {outfile}', **kwargs)
def input(self, **kwargs):
content = super(LessFilter, self).input(**kwargs)
return CssAbsoluteFilter(content).input(**kwargs)请注意,这既适用于COMPRESS_ENABLED = True也适用于False。
发布于 2015-12-06 16:16:45
这已在django-压缩器1.6中得到修正.来自变化量g
Apply CssAbsoluteFilter to precompiled css even when compression is disabled也就是说,即使使用DEBUG = True,绝对筛选器也会运行在较少的文件上。
发布于 2014-10-03 20:55:06
如果您使用django-libsass,过滤器代码如下所示:
from compressor.filters.css_default import CssAbsoluteFilter
from django_libsass import SassCompiler
class PatchedSCSSCompiler(SassCompiler):
def input(self, **kwargs):
content = super(PatchedSCSSCompiler, self).input(**kwargs)
return CssAbsoluteFilter(content).input(**kwargs)然后在您的设置文件中:
COMPRESS_PRECOMPILERS = (
('text/x-scss', 'path.to.PatchedSCSSCompiler'),
)https://stackoverflow.com/questions/10423159
复制相似问题