summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlejandro Dubrovsky <alitosis@gmail.com>2018-08-23 21:10:39 +0700
committerTim Graham <timograham@gmail.com>2018-08-23 10:10:39 -0400
commit108c04f572ccca74258c4d2024aef61270a5b083 (patch)
tree3b75fd7a185bd4de26e2d28ce4db1754f64959b7
parentc69d40f94308d52243133def3b6be7ff403df6f1 (diff)
Fixed #29570 -- Added check that MEDIA_URL isn't in STATIC_URL.
-rw-r--r--django/contrib/staticfiles/utils.py5
-rw-r--r--tests/staticfiles_tests/test_utils.py14
2 files changed, 19 insertions, 0 deletions
diff --git a/django/contrib/staticfiles/utils.py b/django/contrib/staticfiles/utils.py
index 3d28c90f47..221ce3b622 100644
--- a/django/contrib/staticfiles/utils.py
+++ b/django/contrib/staticfiles/utils.py
@@ -52,6 +52,11 @@ def check_settings(base_url=None):
if settings.MEDIA_URL == base_url:
raise ImproperlyConfigured("The MEDIA_URL and STATIC_URL "
"settings must have different values")
+ if (settings.DEBUG and settings.MEDIA_URL and settings.STATIC_URL and
+ settings.MEDIA_URL.startswith(settings.STATIC_URL)):
+ raise ImproperlyConfigured(
+ "runserver can't serve media if MEDIA_URL is within STATIC_URL."
+ )
if ((settings.MEDIA_ROOT and settings.STATIC_ROOT) and
(settings.MEDIA_ROOT == settings.STATIC_ROOT)):
raise ImproperlyConfigured("The MEDIA_ROOT and STATIC_ROOT "
diff --git a/tests/staticfiles_tests/test_utils.py b/tests/staticfiles_tests/test_utils.py
new file mode 100644
index 0000000000..4610b7f00f
--- /dev/null
+++ b/tests/staticfiles_tests/test_utils.py
@@ -0,0 +1,14 @@
+from django.contrib.staticfiles.utils import check_settings
+from django.core.exceptions import ImproperlyConfigured
+from django.test import SimpleTestCase, override_settings
+
+
+class CheckSettingsTests(SimpleTestCase):
+
+ @override_settings(DEBUG=True, MEDIA_URL='/static/media/', STATIC_URL='/static/',)
+ def test_media_url_in_static_url(self):
+ msg = "runserver can't serve media if MEDIA_URL is within STATIC_URL."
+ with self.assertRaisesMessage(ImproperlyConfigured, msg):
+ check_settings()
+ with self.settings(DEBUG=False): # Check disabled if DEBUG=False.
+ check_settings()