Fixed inline static for production deploys.

This commit is contained in:
Martin Mahner 2018-03-24 09:05:02 +01:00
parent ace0704f45
commit fc0e9b8869

View file

@ -7,6 +7,7 @@ from django.conf import settings
from django.contrib.staticfiles.finders import find from django.contrib.staticfiles.finders import find
from django.template.defaulttags import register from django.template.defaulttags import register
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.contrib.staticfiles.storage import staticfiles_storage
logger = getLogger(__file__) logger = getLogger(__file__)
@ -36,13 +37,22 @@ def inlinestatic(path):
""" """
# Filename in build/ directory (when in Watch mode)
filename = find(path) filename = find(path)
if not os.path.exists(filename):
# File in collectstatic target directory (regular deployment)
if not filename:
if staticfiles_storage.exists(path):
filename = staticfiles_storage.path(path)
# If it wasn't found, raise an error if in DEBUG mode.
if not filename or not os.path.exists(filename):
logger.error('Unable to include inline static file "%s", ' logger.error('Unable to include inline static file "%s", '
'file not found.', filename) 'file not found.', filename)
if settings.DEBUG: if settings.DEBUG:
raise ValueError('Unable to include inline static file "{0}", ' raise ValueError('Unable to include inline static file "{0}", '
'file not found.'.format(filename)) 'file not found.'.format(filename))
return '' return ''
return mark_safe(open(filename).read()) return mark_safe(open(filename).read())