Я всегда использую ОС 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?
Информация о версии:
Изменить: kriswallsmith / сборщик / src / Assetic / фильтр / CompassFilter.php
около 312 линии
$pb->add('--sass-dir')->add('')->add('--css-dir')->add('');
в
$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"
Это сработало для меня, когда я выполнял сборку: dump — хотя, когда я открывал сайт в Dev-сервере (Windows), я все еще получал эту ошибку — даже после очистки кэша. Я исправил CompassFilter.php, чтобы сохранить временные файлы. Что приводит к тому, что оба файла были созданы правильно, но не было скомпилированного CSS. Вставка всей команды в оболочку создала CSS. Поэтому единственной причиной, по которой это не работает, должна быть проблема с правами пользователя или переменными среды.
При более внимательном рассмотрении в FilterCompass.php в строке 341 — 345 обнаружен странный патч, устанавливающий каталог HOME для каталога 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);
}
и все работало нормально.