Компас в Symfony 2 сборка Фильтр Исключение

Я установил компас в моем проекте Symfony 2. Теперь я хочу использовать сборочный фильтр в сочетании с компасом.
Я использую Windows 7.

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

[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 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";

39

Решение

Я не хочу вас обескураживать, но с использованием Windows и Ruby это худшая комбинация за всю историю (узел также, node_module с длинными подкаталогами дерева, заставляющий Windows иметь ограничение в 256 символов и будет показывать ошибку при установке пакетов). Моя точка зрения похожа на альтернативу для переноса вашего проекта на виртуальную машину, аналогичную конфигурации вашего сервера. (VirtualBox и Vagrant)

Linux более дружелюбен к Ruby (он поддерживает его) и имеет символические ссылки и длинные пути;

для ковыряния:
https://symfony.com/doc/2.8/setup/homestead.html

Возможно, поможет и эта старая ссылка:
Как использовать фильтр SCSS в Symfony2 под Windows?

1

Другие решения

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

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

Обычно используется только ‘compass’, а не ‘compass.BAT’, который обычно просто вызывает ruby ​​с помощью ‘compass’.

То есть

«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 e /AppData/Local/Temp/ass4326.tmp.scss»

Будет нормально

«C: \ Ruby21-x64 \ bin \ ruby.EXE» «C: \ Ruby21-x64 \ bin \ compass» «скомпилировать» «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»

По сути, установите путь compass.bin, чтобы в нем не было .bat, и вы, вероятно, будете в порядке. Как правило, это в файле instaltic.filters.compass.bin в вашем config.yml

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

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

0

По вопросам рекламы [email protected]