1
0
mirror of https://github.com/django/django.git synced 2025-11-07 07:15:35 +00:00

Fixed #15094 - Added check for forgetting trailing comma in STATICFILES_DIRS tuple. Also reorganized staticfiles settings-checks for better consistency.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@15386 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Carl Meyer
2011-02-01 14:57:10 +00:00
parent 74d485c4ec
commit 7aad3d3fa8
5 changed files with 37 additions and 20 deletions

View File

@@ -46,11 +46,19 @@ class FileSystemFinder(BaseFinder):
self.storages = SortedDict()
# Set of locations with static files
self.locations = set()
if not isinstance(settings.STATICFILES_DIRS, (list, tuple)):
raise ImproperlyConfigured(
"Your STATICFILES_DIRS setting is not a tuple or list; "
"perhaps you forgot a trailing comma?")
for root in settings.STATICFILES_DIRS:
if isinstance(root, (list, tuple)):
prefix, root = root
else:
prefix = ''
if os.path.abspath(settings.STATIC_ROOT) == os.path.abspath(root):
raise ImproperlyConfigured(
"The STATICFILES_DIRS setting should "
"not contain the STATIC_ROOT setting")
self.locations.add((prefix, root))
# Don't initialize multiple storages for the same location
for prefix, root in self.locations:

View File

@@ -26,12 +26,7 @@ class StaticFilesHandler(WSGIHandler):
return settings.STATIC_ROOT
def get_base_url(self):
if not settings.STATIC_URL:
raise ImproperlyConfigured("You're using the staticfiles app "
"without having set the STATIC_URL setting. Set it to "
"URL that handles the files served from STATIC_ROOT.")
if settings.DEBUG:
utils.check_settings()
utils.check_settings()
return settings.STATIC_URL
def _should_handle(self, path):

View File

@@ -10,7 +10,7 @@ from django.contrib.staticfiles import utils
class StaticFilesStorage(FileSystemStorage):
"""
Standard file system storage for static files.
The defaults for ``location`` and ``base_url`` are
``STATIC_ROOT`` and ``STATIC_URL``.
"""
@@ -28,8 +28,7 @@ class StaticFilesStorage(FileSystemStorage):
raise ImproperlyConfigured("You're using the staticfiles app "
"without having set the STATIC_URL setting. Set it to "
"URL that handles the files served from STATIC_ROOT.")
if settings.DEBUG:
utils.check_settings()
utils.check_settings()
super(StaticFilesStorage, self).__init__(location, base_url, *args, **kwargs)

View File

@@ -35,9 +35,13 @@ def get_files(storage, ignore_patterns=[], location=''):
def check_settings():
"""
Checks if the MEDIA_(ROOT|URL) and STATIC_(ROOT|URL)
settings have the same value.
Checks if the staticfiles settings have sane values.
"""
if not settings.STATIC_URL:
raise ImproperlyConfigured(
"You're using the staticfiles app "
"without having set the required STATIC_URL setting.")
if settings.MEDIA_URL == settings.STATIC_URL:
raise ImproperlyConfigured("The MEDIA_URL and STATIC_URL "
"settings must have different values")
@@ -45,10 +49,3 @@ def check_settings():
(settings.MEDIA_ROOT == settings.STATIC_ROOT)):
raise ImproperlyConfigured("The MEDIA_ROOT and STATIC_ROOT "
"settings must have different values")
for path in settings.STATICFILES_DIRS:
# in case the item contains a prefix
if isinstance(path, (list, tuple)):
path = path[1]
if os.path.abspath(settings.STATIC_ROOT) == os.path.abspath(path):
raise ImproperlyConfigured("The STATICFILES_DIRS setting should "
"not contain the STATIC_ROOT setting")