2015-04-08 4 views
35

Я установил компас в моем проекте symfony 2. Теперь я хочу использовать assetic фильтр в сочетании с компасом. Я использую окна 7.Компас в Symfony 2 assetic Исключение фильтра

Я думаю, что это почти работает, но я все еще получаю эту ошибку:

[Assetic\Exception\FilterException] 
An error occurred while running: 
"C:\Ruby21-x64\bin\ruby.EXE" "C:\Ruby21-x64\bin\compass.BAT" "compile" "C:\ 
Users\tommie\AppData\Local\Temp" "--boring" "--config" "C:\Users\tommie\App 
Data\Local\Temp\ass4325.tmp" "--sass-dir" "" "--css-dir" "" "C:/Users/tommi 
e/AppData/Local/Temp/ass4326.tmp.scss" 
Error Output: 
C:/Ruby21-x64/bin/compass.BAT:1: syntax error, unexpected tCONSTANT, expect 
ing end-of-input 

Мой код в HTML (веточка): stylesheets.html.twig

{% stylesheets filter="compass" output='css/compiled/*.css' 
    "@AcmeSassDemoBundle/Resources/assets/css/base.scss" 
%} 
<link rel="stylesheet" href="{{ asset_url }}" /> 

{% endstylesheets %} 

base.html.twig:

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>{% block title %}Sass Demo!{% endblock %}</title> 
    {#{% block stylesheets %}{% endblock %} #} 

    {% include "AcmeSassDemoBundle:Demo:stylesheets.html.twig" %} 
    <link rel="shortcut icon" href="{{ asset('favicon.ico') }}" /> 
</head> 
<body> 
    <div id="header"> 
     {% block header %} 
      <h1>Sass Demo</h1> 
      <div class="logo">this container is half as big as the sass.gif's dimension</div> 
     {% endblock %} 
    </div> 

    <div id="menu"> 
     <ul> 
      <li class="add"><a href="#">add something</a></li> 
      <li class="edit"><a href="#">edit something</a></li> 
      <li class="delete"><a href="#">delete something</a></li> 
     </ul> 
    </div> 

    <div id="content"> 
     {% block body %}hello sass!{% endblock %} 
    </div> 

    <div id="footer"> 
     {% block footer %}awesome footer goes here ...{% endblock %} 
    </div> 
    {% block javascripts %}{% endblock %}</ 
</body> 

index.html.twig:

{% extends 'AcmeSassDemoBundle:Demo:base.html.twig' %} 

{% block body %} 

<div class="content"> 
    hello world 
    <div class="sub"> 
     This text should be in green ... 
     <div class="sub"> 
     ... and this one in blue! 
    </div> 
</div> 

мой config.yml конфигурации фильтра assetic:

# Assetic Configuration 
assetic: 
    debug: false 
    use_controller: true# default: true 
    filters: 
     sass: ~ 
     compass: 
      compass: 
       bin: C:\Ruby21-x64\bin\compass.bat 

base.scss

$main-background-color: #FFF; 
$main-color: #FFF; 
$light-color: #759E1A; 
$link-color: #0088CC; 

body { 
    background-color: #CCC; 
} 

@mixin rounded($side, $radius: 10px) { 
    border-radius: $radius; 
    border-#{$side}-radius: $radius; 
    -moz-border-radius-#{$side}: $radius; 
    -webkit-border-#{$side}-radius: $radius; 
} 

@import "header.scss"; 
@import "menu.scss"; 
@import "content.scss"; 
@import "footer.scss"; 
+0

Это опечатка или у вас есть 2 раза «компас» в вашем конфиге? У меня только один в моем. Попробуйте удалить один из них (например, https://gist.github.com/ferdynator/280048aceea4ea16d925). Также не могли бы вы добавить свой 'base.scss'? – ferdynator

+0

Привет, Ferdynator, обновил мой вопрос и добавил base.scss. Также попробовал ваш конфиг, но все еще не работал. ошибка: "/ usr/bin/ruby" "C: \ Ruby21-x64 \ bin \ compass.bat" "скомпилировать" "C: \ Windows \ Temp" "--boring" "--config" "C : \ Windows \ Temp \ assB498.tmp "" --sass-dir "" "" --css-dir "" "" C: /Windows/Temp/assB499.tmp.scss " –

+0

Посмотрите на это руководство, возможно это поможет: http://stackoverflow.com/questions/16003621/configuring-compass-on-windows – Nickolaus

ответ

0

Это весьма вероятно, что это то, что вы уже пробовали/заметили, но на всякий случай:

Ошибка кажется более похожей на интерпретатор ruby, который умирает, а не задыхается на вашем scss/twig. Это делает некоторый смысл, поскольку Ruby не ожидает использования сценария .BAT.

Обычно используется только «компас», а не «compass.BAT», который обычно просто называет рубин «компасом».

I.e.

"C: \ Ruby21-x64 \ Bin \ ruby.EXE" "C: \ Ruby21-x64 \ Bin \ compass.BAT" "компилировать" «C: \ Users \ Tommie \ AppData \ Local \ Temp "" --boring "" --config " " C: \ Users \ tommie \ App Data \ Local \ Temp \ ass4325.tmp "" --sass-dir "" " " --css-dir "" " "C:/Users/Tommi е/AppData/Local/Temp/ass4326.tmp.scss"

, как правило,

" C: \ Ruby21-x64 \ Bin \ ruby.EXE "C: \ Ruby21-x64 \ bin \ compass" "compile" "C: \ Users \ tommie \ AppData \ Local \ Temp" "--boring" "--config" "C: \ Users \ tommie \ App Data \ Local \ Temp \ ass4325.tmp" "--sass- реж» "" "--css-реж" "" "C:/Users/Tommi е/AppData/Local/Temp/ass4326.tmp.scss"

по существу, указываем путь к compass.bin не имеет .bat в нем, и вы, вероятно, будете в порядке. Это, как правило, в assetic.filters.compass.bin в вашем config.yml

Смотри также https://github.com/symfony/AsseticBundle/issues/158

Это также показывает специальные символы не любят, не знаю, насколько хорошо он любит пробелы в dirnames. Это может также способствовать удушению, если он все еще не работает без него.bat

+0

Спасибо также пробовал это, но, к сожалению, это не проблема. Я все еще получаю ту же ошибку. –

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