これは、少なくとも Symfony 2.8 で完全に機能する例です。Assetic を使用したこの例は、css の埋め込みファイルで動作するはずです。
樹木はこちら
/app
/src
---/Acme
------/MyBundle
---------/Ressources
------------/public
---------------/css
------/MyOtherBundle
---------/Ressources
------------/public
---------------/css
/web
---/bundles
------/acmemybundle
------/acmemyotherbundle
---/css
------/built
したがって、/src/Acme/MyBundle/Ressources/public/css/main.scssは、他のバンドルにインポートしたいすべての宣言を含むファイルであるとしましょう (私の場合は sass を使用しますが、less でも同じです) .
/src/Acme/MyOtherBundle/Ressources/public/css/mycss.scssで次のようにします:
@import "../../../../MyBundle/Resources/public/css/main";
これは、ファイルの古典的な物理的な場所を参照するため、IDE はそれを見つけます。
今、興味深い部分です。すべての scss ファイルを 1 つの css ファイルにコンパイル、縮小、および名前変更したいと考えています。これは Assetics で実現できます。
css をロードする twig ファイル (私の場合は /app/Ressources/views/css.html.twig)。
{% stylesheets
filter='compass'
filter='?uglifycss'
filter='cssrewrite'
output='css/built/myMinifiedAndCompiledSass.css'
'bundles/mybundle/css/*.scss'
'bundles/myotherbundle/css/*.scss'
%}
<link rel="stylesheet" type="text/css" href="{{ asset_url }}">
{% endstylesheets %}
==> ここでは、/web ディレクトリからファイルを参照する必要があります (したがって、'bundles/acmemybundle..' 構文を使用します。シンボリック リンク モードでアセットをインストールする必要があります。(php app/console asset:install --symlink)
==> Web ディレクトリにとどまるので、出力ファイル名と場所に好きなものを入れることができます。
そして最後に conf.yml で
# Assetic Configuration
assetic:
filters:
cssrewrite: ~
sass: ~
compass:
load_paths:
- "/usr/bin/compass"
- "%kernel.root_dir%/../src/Acme/MyBundle/Resources/public/css/"
uglifycss:
bin: %kernel.root_dir%/../node_modules/.bin/uglifycss
uglifyjs2:
bin: %kernel.root_dir%/../node_modules/.bin/uglifyjs
ここで重要な部分は、コンパスの load_paths です。基本的なセットアップでは、コンパスがあります: ~ 次のように変更する必要があります:
compass:
load_paths:
- "/usr/bin/compass"
- "%kernel.root_dir%/../src/Acme/MyBundle/Resources/public/css/"