2012-05-20 2 views
4

Я использую django-1.3 с django-staticfiles-1.2.1 и django-pip-1.2.6 Эта настройка должна работать в соответствии с документацией.django-pipe не компилирует файлы sass

В корне моего проекта у меня есть каталог staticfiles, который содержит каталог sass, содержащий мои файлы sass. Я хотел бы видеть Джанго-конвейерный скомпилировать мои Sass файлы и поместить их в /static/css/master.css

Вот выдержка из моего settings.py файла

MEDIA_ROOT = '/home/jonasg/dev/projectX/media/' 

STATIC_ROOT = 'static/' 
STATIC_URL = '/static/' 
PIPELINE=True 
PIPELINE_AUTO=True 
STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage' 
STATICFILES_DIRS = ( 
    'staticfiles', 
    ) 
PIPELINE_COMPILERS = ( 
     'pipeline.compilers.sass.SASSCompiler', 
    ) 
PIPELINE_CSS_COMPRESSOR = 'pipeline.compressors.cssmin.CssminCompressor' 

PIPLINE_CSS = { 
    'base': { 
     'source_filenames': (
      'sass/*.sass' 
      ),                                  
     'output_filename': 'css/master.css' 
     } 
    } 
PIPELINE_COMPILERS = ( 
     'pipeline.compilers.sass.SASSCompiler', 
    ) 
PIPELINE_SASS_BINARY='/usr/bin/sass' 
STATICFILES_FINDERS = ( 
     'staticfiles.finders.FileSystemFinder', 
     'staticfiles.finders.AppDirectoriesFinder', 
     'staticfiles.finders.DefaultStorageFinder' 
    ) 

Когда я бегу ./ manage.py collectstatic, все файлы из/staticfiles копируются в/static, но ничего не компилируется и не сокращается. Также я заметил, что эти команды принимают все из/media и помещают их в/static, это не поведение, которое я ожидал.

Также, как вы могли заметить, я использую django-staticfiles, который рекомендуется django-конвейером, если вы все еще используете django-1.3. Я не понимаю, почему я должен придерживаться django-staticfiles, если это приложение было перенесено в django-1.3?

+0

'PIPLINE_CSS' похоже на орфографическую ошибку – Hersheezy

ответ

0

Компилятор SASS ожидает, что у вас есть файл с расширением .scss. Похоже, что SASS добавила еще одно расширение/синтаксис, оно будет зафиксировано в следующей версии конвейера.

Не забудьте изменить свое хранилище staticfiles как это тоже:

STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage' 
+0

Я исправил это в моих настройках.py, но это не очень помогает. Теперь файлы staticfiles/sass/*. Scss просто копируются в static/sass/*. Scss, где я ожидал, что он сжимает и создает файл staticfiles/css/master.css. –

+0

Похоже, вы не настроили '' STATICFILES_STORAGE'' правильно, я отредактировал мой вопрос, чтобы быть кратким. – cyberdelia

+0

Теперь я наткнулся на: ValueError: Файл «icons/Gear.png» не найден с помощью объекта . Пока ./manage.py findstatic img/icons/Gear.png действительно возвращает хорошее, а значки/Gear.png не находит файл. Файл находится по адресу staticfiles/img/icons/Gear.png –

0

я встречаюсь с той же проблемой, вот мое исправление, добавить

PIPELINE_STORAGE = 'pipeline.storage.PipelineCachedStorage' 

в настройках. Это работает для меня, по крайней мере.

Смежные вопросы