2015-04-08 18 views
35

Ho installato la bussola nel mio progetto symfony 2. Ora voglio usare il filtro assetico in combinazione con la bussola. sto usando Windows 7.Bussola in Symfony 2 assetic Filter Exception

Penso che sia quasi di lavoro, ma ancora sto ottenendo questo errore:

[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 

Il mio codice in html (ramoscello): 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> 

mia config.yml configurazione dei filtri 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

È un errore di battitura o hai "bussola" 2 volte nella tua configurazione? Ne ho solo uno nel mio. Prova a rimuovere uno [in questo modo] (https://gist.github.com/ferdynator/280048aceea4ea16d925). Potresti anche aggiungere il tuo 'base.scss'? – ferdynator

+0

Ciao ferdynator, ho aggiornato la mia domanda e ho aggiunto base.scss. Anche provato la tua configurazione ma ancora non funziona. errore: "/ usr/bin/ruby" "C: \ Ruby21-x64 \ bin \ compass.bat" "compile" "C: \ Windows \ Temp" "--boring" "--config" "C : \ Windows \ Temp \ assB498.tmp "" --sass-dir "" "" --css-dir "" "" C: /Windows/Temp/assB499.tmp.scss " –

+0

dai un'occhiata a questa guida forse aiuterà: http://stackoverflow.com/questions/16003621/configuring-compass-on-windows – Nickolaus

risposta

0

E 'altamente probabile che questo è qualcosa che hai già provato/notato, ma nel caso:

L'errore sembra più simile all'interprete rubino sta morendo, piuttosto che soffocare sul tuo scss/ramoscello. Il che ha un certo senso dal momento che il rubino non si aspetta uno script .BAT da utilizzare.

Generalmente viene utilizzata solo la "bussola", non la "bussola.BAT", che di solito chiama rubino con "bussola".

I.e.

"C: \ Ruby21-x64 \ bin \ ruby.EXE" "C: \ Ruby21-x64 \ bin \ compass.BAT" "compilare" "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"

normalmente sarebbero

" C: \ Ruby21-x64 \ bin \ ruby.EXE "" C: \ Ruby21-x64 \ bin \ compass "" compila " "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"

In sostanza, impostare il percorso per compass.bin non ha il .bat in esso, e probabilmente starai bene. Questo è generalmente nel assetic.filters.compass.bin nel vostro config.yml

Vedi anche https://github.com/symfony/AsseticBundle/issues/158

Questo rivela anche i caratteri speciali non sono ben voluto, non so come bene che gli piace spazi dirnames. Quelli potrebbero anche contribuire a soffocare se ancora non funziona senza il.bat

+0

Grazie anche a questo, ma sfortunatamente non è questo il problema. Sto ancora ricevendo lo stesso errore. –