fbpx

Ошибка collectstatic django-pipeline

405 просмотра
0
0 Комментариев

Файлы лежат в src/static/css/, src/static/scss/, src/static/js/*. build_static рядом с src. При выполнении collectstatic файлы копируются в build_static , но core.js не создается.

В settings.py:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
ROOT_DIR = str(os.path.join(BASE_DIR, '..'))
...
STATICFILES_FINDERS = [
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'pipeline.finders.PipelineFinder',
]
 
MEDIA_ROOT = str(os.path.join(ROOT_DIR, 'media'))
MEDIA_URL = '/media/'
 
STATIC_ROOT = str(os.path.join(ROOT_DIR, 'build_static'))
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    str(os.path.join(BASE_DIR, 'static')),
    str(os.path.join(BASE_DIR, '..', 'bower_components')),
]
 
STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage'
PIPELINE['CSSMIN_BINARY'] = 'cssmin'
PIPELINE['PIPELINE_ENABLED'] = True

Настройки pipeline.py:

PIPELINE = {
    # 'PIPELINE_ENABLED': True,
    'COMPILERS': (
        'pipeline_compass.compiler.CompassCompiler',
    ),
    'CSS_COMPRESSOR': 'pipeline.compressors.cssmin.CSSMinCompressor',
    'JS_COMPRESSOR': 'pipeline.compressors.jsmin.JSMinCompressor',
    #
    'STYLESHEETS': {
        'core': {
            'source_filenames': (
                'css/reset.css',
            ),
            'output_filename': 'css_build/core.css',
        },
    },
    #
    'JAVASCRIPT': {
        'core': {
            'source_filenames': (
                # 'jquery/src/jquery.js',
            ),
 
            'output_filename': 'js_build/core.js',
        },
    }
 
}

Ошибка:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "Y:\Users\Astaroth\Documents\web\HolidayOrganizer\env\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "Y:\Users\Astaroth\Documents\web\HolidayOrganizer\env\lib\site-packages\django\core\management\__init__.py", line 365, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "Y:\Users\Astaroth\Documents\web\HolidayOrganizer\env\lib\site-packages\django\core\management\base.py", line 288, in run_from_argv
    self.execute(*args, **cmd_options)
  File "Y:\Users\Astaroth\Documents\web\HolidayOrganizer\env\lib\site-packages\django\core\management\base.py", line 335, in execute
    output = self.handle(*args, **options)
  File "Y:\Users\Astaroth\Documents\web\HolidayOrganizer\env\lib\site-packages\django\contrib\staticfiles\management\commands\collectstatic.py", line 189, in handle
    collected = self.collect()
  File "Y:\Users\Astaroth\Documents\web\HolidayOrganizer\env\lib\site-packages\django\contrib\staticfiles\management\commands\collectstatic.py", line 129, in collect
    for original_path, processed_path, processed in processor:
  File "Y:\Users\Astaroth\Documents\web\HolidayOrganizer\env\lib\site-packages\pipeline\storage.py", line 26, in post_process
    packager.pack_stylesheets(package)
  File "Y:\Users\Astaroth\Documents\web\HolidayOrganizer\env\lib\site-packages\pipeline\packager.py", line 100, in pack_stylesheets
    variant=package.variant, **kwargs)
  File "Y:\Users\Astaroth\Documents\web\HolidayOrganizer\env\lib\site-packages\pipeline\packager.py", line 118, in pack
    content = compress(paths, **kwargs)
  File "Y:\Users\Astaroth\Documents\web\HolidayOrganizer\env\lib\site-packages\pipeline\compressors\__init__.py", line 78, in compress_css
    css = getattr(compressor(verbose=self.verbose), 'compress_css')(css)
  File "Y:\Users\Astaroth\Documents\web\HolidayOrganizer\env\lib\site-packages\pipeline\compressors\cssmin.py", line 10, in compress_css
    return self.execute_command(command, css)
  File "Y:\Users\Astaroth\Documents\web\HolidayOrganizer\env\lib\site-packages\pipeline\compressors\__init__.py", line 247, in execute_command
    stdin=subprocess.PIPE, stderr=subprocess.PIPE)
  File "C:\Users\Astaroth\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 709, in __init__
    restore_signals, start_new_session)
  File "C:\Users\Astaroth\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py", line 997, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] Не удается найти указанный файл


Добавить комментарий

1 Ответы

Python Опубликовано 25.06.2019
0

По предоставленной ошибке не ясно, какой именно файл не находится, но попробуем решить вашу задачу.

При обращении к статичному файлу, приложение ищет его в STATICFILES_DIRS, но не находит часть файлов, потому что вся статика собрана в STATIC_ROOT, а это разные папки.

Команда collectstatic собирает все используемые в приложении файлы в одну папку.

Для того, что-бы все ваше приложение использовало все статичные файлы, вам необходимо после выполнения команды collectstatic перенести все файлы из папки, указанной в STATIC_ROOT в отдельную папку, допустим all_static. И, указать в STATICFILES_DIRS путь до папки all_static.

Похожий ответ.

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up