Django Whitenoise со сжатыми статическими файлами - PullRequest
0 голосов
/ 05 ноября 2019

Я не могу запустить мой проект django с использованием whitenoise и сжатых статических файлов (включая libsass). В ссылках ниже я читал, что это возможно только при автономном сжатии необходимых статических файлов. Но когда я запустил Docker-контейнер, при выполнении команды compress

docker-compose -f production.yml run --rm django python manage.py compress

выдается ошибка:

ValueError: Missing staticfiles manifest entry for 'sass/app.scss'

При попытке запросить сайт выдает следующую ошибку (как и ожидалось? ):

compressor.exceptions.OfflineGenerationError: You have offline compression enabled but key "..." is missing from offline manifest. You may need to run "python manage.py compress"

Настройки следующие (сборка с cookiecutter-django, см. Ссылку для полной базы кода ниже):

STATIC_ROOT = str(ROOT_DIR("staticfiles"))
STATIC_URL = "/static/"
STATICFILES_DIRS = [str(APPS_DIR.path("static"))]
STATICFILES_FINDERS = [
    "django.contrib.staticfiles.finders.FileSystemFinder",
    "django.contrib.staticfiles.finders.AppDirectoriesFinder",
]

STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"

STATICFILES_FINDERS += ["compressor.finders.CompressorFinder"]

COMPRESS_PRECOMPILERS = [("text/x-scss", "django_libsass.SassCompiler")]
COMPRESS_CACHEABLE_PRECOMPILERS = (("text/x-scss", "django_libsass.SassCompiler"),)

COMPRESS_ENABLED = env.bool("COMPRESS_ENABLED", default=True)
COMPRESS_STORAGE = "compressor.storage.GzipCompressorFileStorage"
COMPRESS_ROOT = STATIC_ROOT
COMPRESS_URL = STATIC_URL
COMPRESS_OFFLINE = True

Итак, после поиска в Интернете в течение 1 дня;Я застрял ... Спасибо за любую помощь или предложение!

База кода: https://github.com/rl-institut/E_Metrobus/tree/compress

, которая построена с cookiecutter-django-foundation

включая следующие изменения в config/setttings/production.py:

COMPRESS_STORAGE = "compressor.storage.GzipCompressorFileStorage"  # Instead of pre-set "storages.backends.s3boto3.S3Boto3Storage"
COMPRESS_ROOT = STATIC_ROOT  # Just in case
COMPRESS_OFFLINE = True  # Needed to run compress offline

Возможные связанные ссылки:

...