2015-03-11 3 views
3

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

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" 

сообщение об ошибке: "Отдельные таблицы стилей должны находиться в директории Sass"

[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. 

Я не мог понять, что ошибка.

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

информация

Версия:

  • Окна: 7
  • Ruby: 2.1.5
  • Sass: 3.4.10
  • Компас: 1.0.3
+0

Вы пытались найти ошибку? Возможный дубликат: http://stackoverflow.com/questions/19419011/compass-you-must-compile-individual-stylesheets-from-the-project-directory – cimmanon

ответ

8

Edit: kriswallsmith/assetic/src/Assetic/Filter/CompassFilter.php

около 31 2 линии

$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" 
+0

Мне пришлось установить полный стек devfs symfony в среде Windows, и это отлично работал с редактированием kriswallsmith/assetic/src/Assetic/Filter/CompassFilter.php, как вы сказали (не нужно менять версию yuicompressor). Спасибо, что поделились этим! –

+0

Это работает, но было бы здорово, если бы мы могли сконфигурировать эти пути где-нибудь (редактирование кода вендоров отстой ...) – loostro

0

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

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

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

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

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