Apply CssAbsoluteFilter to precompiled css even when compression is disabled
fixes #226, fixes #296
This commit is contained in:
@@ -21,6 +21,7 @@ from compressor.conf import settings
|
|||||||
from compressor.exceptions import (CompressorError, UncompressableFileError,
|
from compressor.exceptions import (CompressorError, UncompressableFileError,
|
||||||
FilterDoesNotExist)
|
FilterDoesNotExist)
|
||||||
from compressor.filters import CachedCompilerFilter
|
from compressor.filters import CachedCompilerFilter
|
||||||
|
from compressor.filters.css_default import CssAbsoluteFilter
|
||||||
from compressor.storage import compressor_file_storage
|
from compressor.storage import compressor_file_storage
|
||||||
from compressor.signals import post_compress
|
from compressor.signals import post_compress
|
||||||
from compressor.utils import get_class, get_mod_func, staticfiles
|
from compressor.utils import get_class, get_mod_func, staticfiles
|
||||||
@@ -211,9 +212,13 @@ class Compressor(object):
|
|||||||
precompiled, value = self.precompile(value, **options)
|
precompiled, value = self.precompile(value, **options)
|
||||||
|
|
||||||
if enabled:
|
if enabled:
|
||||||
yield self.filter(value, **options)
|
yield self.filter(value, self.cached_filters, **options)
|
||||||
else:
|
elif precompiled:
|
||||||
if precompiled:
|
# since precompiling moves files around, it breaks url()
|
||||||
|
# statements in css files. therefore we run the absolute filter
|
||||||
|
# on precompiled css files even if compression is disabled.
|
||||||
|
if CssAbsoluteFilter in self.cached_filters:
|
||||||
|
value = self.filter(value, [CssAbsoluteFilter], **options)
|
||||||
yield self.handle_output(kind, value, forced=True,
|
yield self.handle_output(kind, value, forced=True,
|
||||||
basename=basename)
|
basename=basename)
|
||||||
else:
|
else:
|
||||||
@@ -224,7 +229,7 @@ class Compressor(object):
|
|||||||
Passes the concatenated content to the 'output' methods
|
Passes the concatenated content to the 'output' methods
|
||||||
of the compressor filters.
|
of the compressor filters.
|
||||||
"""
|
"""
|
||||||
return self.filter(content, method=METHOD_OUTPUT)
|
return self.filter(content, self.cached_filters, method=METHOD_OUTPUT)
|
||||||
|
|
||||||
def filter_input(self, forced=False):
|
def filter_input(self, forced=False):
|
||||||
"""
|
"""
|
||||||
@@ -275,8 +280,8 @@ class Compressor(object):
|
|||||||
filename=filename)
|
filename=filename)
|
||||||
return True, filter.input(**kwargs)
|
return True, filter.input(**kwargs)
|
||||||
|
|
||||||
def filter(self, content, method, **kwargs):
|
def filter(self, content, filters, method, **kwargs):
|
||||||
for filter_cls in self.cached_filters:
|
for filter_cls in filters:
|
||||||
filter_func = getattr(
|
filter_func = getattr(
|
||||||
filter_cls(content, filter_type=self.type), method)
|
filter_cls(content, filter_type=self.type), method)
|
||||||
try:
|
try:
|
||||||
|
Reference in New Issue
Block a user