Collectstatic failed in production when comprehensive theme contained custom css files. This patch fixes that problem by removing ComprehensiveThemeFinder from STATICFILES_FINDERS and ComprehensiveThemingAware mixin from STATICFILES_STORAGE. Comprehensive theme static dirs are added to the top of the STATICFILES_DIRS entry, which means that the default django FilesystemFinder will find theme static files, and since the theme folder is at the top of STATICFILES_DIRS, theme files will take precedence over default LMS/CMS static files. This change means that theme static file URLs are no longer prefixed with themes/<theme-name>/, but since we currently only support one comprehensive theme at a time, that shouldn't be a problem. If/when we want to make the choice of a theme dynamic per-request (microsites?), we will have to bring custom theme finders and storage mixins back, but for now, we don't need them.
33 lines
899 B
Python
33 lines
899 B
Python
"""
|
|
Django storage backends for Open edX.
|
|
"""
|
|
from django.contrib.staticfiles.storage import StaticFilesStorage, CachedFilesMixin
|
|
from pipeline.storage import PipelineMixin, NonPackagingMixin
|
|
from require.storage import OptimizedFilesMixin
|
|
|
|
|
|
class ProductionStorage(
|
|
OptimizedFilesMixin,
|
|
PipelineMixin,
|
|
CachedFilesMixin,
|
|
StaticFilesStorage
|
|
):
|
|
"""
|
|
This class combines Django's StaticFilesStorage class with several mixins
|
|
that provide additional functionality. We use this version on production.
|
|
"""
|
|
pass
|
|
|
|
|
|
class DevelopmentStorage(
|
|
NonPackagingMixin,
|
|
PipelineMixin,
|
|
StaticFilesStorage
|
|
):
|
|
"""
|
|
This class combines Django's StaticFilesStorage class with several mixins
|
|
that provide additional functionality. We use this version for development,
|
|
so that we can skip packaging and optimization.
|
|
"""
|
|
pass
|