私はしばらくの間、Windows 上の Symfony 2 プロジェクトで Bootstrap 3 をコンパイルしようとしています。しかし、私はそれを機能させることができません。私の主な目的は、独自の LESS ファイルをコンパイルすることです。私はそれを「styles.less」と呼びました。そこで、たとえば「make-xs-column」のようなブートストラップ ミックスインを使用できるようにしたいと考えています。そのため、bootstrap.less をインポートする必要があります。
これが私がこれまでにしたことです:
composer.json に、ブートストラップ バンドルを追加しました。
{
...
"require": {
...
"twitter/bootstrap": "v3.0.3"
},
....
}
Bootstrap 3 を使いたいので、lessphp フィルターが使えないので、代わりに less フィルターを使用します。そのためには、nodejs をインストールしてから、(コマンド " npm install less -g
" を実行して) 以下をインストールする必要がありました。最後に、config.yml を次のように変更しました。
assetic:
debug: "%kernel.debug%"
use_controller: false
bundles: [ JoePersonalWebSiteBundle ]
filters:
cssrewrite: ~
less:
node: "C:\\dev\\nodejs\\lessc.cmd"
node_paths:
- "C:\\dev\\nodejs\\node_modules"
apply_to: "\.less$"
ここで、layout.html.twig に以下を追加しました。
{% stylesheets filter='less' '@JoePersonalWebSiteBundle/Resources/less/styles.less' %}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}">
{% endstylesheets %}
そして、「styles.less」ファイルで、「bootstrap.less」を次のようにインポートします。
@import '../../../../../../vendor/twitter/bootstrap/less/bootstrap.less';
しかし、私はいつもエラーが発生します。実際、「styles.less」ファイルが完全に空の場合でも、次のようなエラーが常に発生します。
[exception] 500 | Internal Server Error | Assetic\Exception\FilterException
[message] An error occurred while running:
"C:\dev\nodejs\lessc.cmd" "C:\Users\joe\AppData\Local\Temp\assDE7E.tmp"
Error Output:
[31mParseError: missing opening `{`[39m[31m in [39mC:\Users\joe\AppData\Local\Temp\assDE7E.tmp[90m on line 17, column 1:[39m
[90m16 });[39m
17 [0m[0m
[1] Assetic\Exception\FilterException: An error occurred while running:
"C:\dev\nodejs\lessc.cmd" "C:\Users\joe\AppData\Local\Temp\assDE7E.tmp"
Error Output:
[31mParseError: missing opening `{`[39m[31m in [39mC:\Users\joe\AppData\Local\Temp\assDE7E.tmp[90m on line 17, column 1:[39m
[90m16 });[39m
17 [0m[0m
少ない代わりにそれを使用する独自のリセス フィルターを作成しようとしました (ここで見つかった boteek の作業に基づく)。しかし、それもうまくいきませんでした。少ないファイルはコンパイルされません。空のものでも、単純なものでも。
誰かが私を正しい方向に向けてもらえますか? Windows で、Symfony 2 プロジェクトで Bootstrap 3 をコンパイルすることは可能ですか? もしそうなら、誰かが私が従うべき正確な手順を教えてもらえますか?