diff --git a/weasyprint/css/__init__.py b/weasyprint/css/__init__.py index 914f345eb..a6d7e443a 100644 --- a/weasyprint/css/__init__.py +++ b/weasyprint/css/__init__.py @@ -26,7 +26,7 @@ from ..urls import URLFetchingError, get_url_attribute, url_join from . import computed_values, counters, media_queries from .properties import INHERITED, INITIAL_NOT_COMPUTED, INITIAL_VALUES -from .utils import remove_whitespace +from .utils import get_url, remove_whitespace from .validation import preprocess_declarations from .validation.descriptors import preprocess_descriptors @@ -838,9 +838,15 @@ def preprocess_stylesheet(device_media_type, base_url, stylesheet_rules, continue tokens = remove_whitespace(rule.prelude) - if tokens and tokens[0].type in ('url', 'string'): - url = tokens[0].value - else: + url = None + if tokens and len(tokens) == 1: + if tokens[0].type == 'string': + url = tokens[0].value + else: + url_tuple = get_url(tokens[0], base_url) + if url_tuple and url_tuple[1][0] == 'external': + url = url_tuple[1][1] + if url is None: continue media = media_queries.parse_media_query(tokens[1:]) if media is None: diff --git a/weasyprint/tests/test_api.py b/weasyprint/tests/test_api.py index ed659d6a1..24ce74554 100644 --- a/weasyprint/tests/test_api.py +++ b/weasyprint/tests/test_api.py @@ -899,6 +899,8 @@ def test(html, blank=False): 'url(weasyprint-custom:foo/é_%e9_pattern)">') test('
') test('') + test('') + test('') test('') with capture_logs() as logs: