Make CssAbsoluteFilter not match data URIs

This commit is contained in:
Johannes Linke
2017-02-16 15:57:48 +01:00
parent 982cac4dbe
commit ea40e786e1

View File

@@ -8,7 +8,7 @@ from compressor.filters import FilterBase, FilterError
URL_PATTERN = re.compile(r'url\( *(([\'"]?).+?\2) *\)') URL_PATTERN = re.compile(r'url\( *(([\'"]?).+?\2) *\)')
SRC_PATTERN = re.compile(r'src=([\'"])(.+?)\1') SRC_PATTERN = re.compile(r'src=([\'"])(.+?)\1')
SCHEMES = ('http://', 'https://', '/', 'data:') SCHEMES = ('http://', 'https://', '/')
class CssAbsoluteFilter(FilterBase): class CssAbsoluteFilter(FilterBase):
@@ -89,7 +89,7 @@ class CssAbsoluteFilter(FilterBase):
wrap = '"' if url[0] == '"' else "'" wrap = '"' if url[0] == '"' else "'"
url = url.strip('\'"') url = url.strip('\'"')
if url.startswith('#'): if url.startswith(('#', 'data:')):
return template % (wrap, url, wrap) return template % (wrap, url, wrap)
elif url.startswith(SCHEMES): elif url.startswith(SCHEMES):
return template % (wrap, self.add_suffix(url), wrap) return template % (wrap, self.add_suffix(url), wrap)