diff --git a/django/conf/urls/static.py b/django/conf/urls/static.py index 150f4ffd3f0..fa83645b9dd 100644 --- a/django/conf/urls/static.py +++ b/django/conf/urls/static.py @@ -1,4 +1,5 @@ import re +from urllib.parse import urlsplit from django.conf import settings from django.core.exceptions import ImproperlyConfigured @@ -19,7 +20,7 @@ def static(prefix, view=serve, **kwargs): """ if not prefix: raise ImproperlyConfigured("Empty static prefix not permitted") - elif not settings.DEBUG or '://' in prefix: + elif not settings.DEBUG or urlsplit(prefix).netloc: # No-op if not in debug mode or a non-local prefix. return [] return [ diff --git a/tests/view_tests/tests/test_static.py b/tests/view_tests/tests/test_static.py index 03cb19ea027..3154ce17037 100644 --- a/tests/view_tests/tests/test_static.py +++ b/tests/view_tests/tests/test_static.py @@ -153,8 +153,9 @@ class StaticHelperTest(StaticTests): static('') def test_special_prefix(self): - """No URLs are served if prefix contains '://'.""" - self.assertEqual(static('http://'), []) + """No URLs are served if prefix contains a netloc part.""" + self.assertEqual(static('http://example.org'), []) + self.assertEqual(static('//example.org'), []) class StaticUtilsTests(unittest.TestCase):