Как установить компас в Symfony2 в Windows?

Я всегда использую ОС Linux, но мне нужно проверить работу под Windows для других. Я установил пакет xampp и фреймворк symfony2.

config.yml:

# Assetic Configuration
assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    write_to:       %kernel.root_dir%/../../html/
    #bundles:        [ ]
    #java: /usr/bin/java
    filters:
        cssrewrite  : ~
        sass        :
            bin: "C:\Ruby\bin\sass"
        compass     :
            bin: "C:\Ruby\bin\compass"
        yui_css:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.8.jar"
        yui_js:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.8.jar"
        closure:
            jar: "%kernel.root_dir%/Resources/java/compiler.jar"

сообщение об ошибке:

[exception] 500 | Internal Server Error | Assetic\Exception\FilterException
[message] An error occurred while running:
"C:\Ruby\bin\ruby.EXE" "C:\Ruby\bin\compass" "compile" "C:\Users\user\AppData\Local\Temp" "--boring" "--config" "C:\Users\user\AppData\Local\Temp\ass1047.tmp" "--sass-dir" "" "--css-dir" "" "C:/Users/user/AppData/Local/Temp/ass1048.tmp.sass"

Error Output:
Individual stylesheets must be in the sass directory.

Я не мог понять, что «Отдельные таблицы стилей должны находиться в каталоге sass». ошибка.

Как установить компас в Symfony2 на Windows?

Информация о версии:

  • Windows 7
  • Руби: 2.1.5
  • Сасс: 3.4.10
  • Компас: 1.0.3

person Devatim    schedule 11.03.2015    source источник
comment
Вы вообще пробовали искать ошибку? Возможный дубликат: stackoverflow.com/questions/19419011/   -  person cimmanon    schedule 11.03.2015


Ответы (2)


Редактировать: kriswallsmith/assetic/src/Assetic/Filter/CompassFilter.php

около 312 строки

$pb->add('--sass-dir')->add('')->add('--css-dir')->add('');

to

$pb->add('--sass-dir')->add($tempDir)->add('--css-dir')->add($tempDir);

и yuicompressor-2.4.8.jar замените на yuicompressor-2.4.7.jar.

# Assetic Configuration
assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    write_to:       %kernel.root_dir%/../../html/
    #bundles:        [ ]
    java: C:\Program Files (x86)\Java\jre1.8.0_31\bin\java.exe
    ruby: C:\Ruby\bin\ruby.exe
    filters:
        cssrewrite  : ~
        sass        :
            bin: C:\Ruby\bin\sass
        compass     :
            bin: C:\Ruby\bin\compass
        yui_js:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
        yui_css:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
person Devatim    schedule 12.03.2015
comment
Мне пришлось установить полный стек разработки Symfony в среде Windows, и он отлично работал, просто отредактировав kriswallsmith/assetic/src/Assetic/Filter/CompassFilter.php, как вы предложили (нет необходимости менять версию yuicompressor). Спасибо, что поделились этим! - person Żabojad; 09.06.2015
comment
Это работает, но было бы здорово, если бы мы могли где-то настроить эти пути (редактирование кода поставщиков — отстой...) - person ioleo; 27.01.2016

Это сработало для меня, когда я делал актив: дамп - хотя при открытии сайта на сервере разработки (Windows) я все еще получаю эту ошибку - даже после очистки кеша. Я исправил CompassFilter.php, чтобы сохранить временные файлы. Что приводит к тому, что оба файла были созданы корректно, но скомпилированного CSS не было. Вставка всей команды в оболочку создала CSS. Таким образом, единственная причина, по которой это не работает, должна быть проблемой с правами пользователя или переменными среды.

Более пристальный взгляд на строки 341-345 FilterCompass.php выявил странный патч, устанавливающий HOME-Directory на Temp-Dir Windows. я снял весь блок

if ($this->homeEnv) {
    // it's not really usefull but... https://github.com/chriseppstein/compass/issues/376
    $pb->setEnv('HOME', FilesystemUtils::getTemporaryDirectory());
    $this->mergeEnv($pb);
}

и все работало нормально.

person gmuehl    schedule 23.01.2017