Значки шрифтов Symfony2 – Assetic – css

Как включить библиотеки шрифтов шрифтов css, вызывается с помощью композитора в каталоге / vendor dir (например, fontawesome). Включают:

{% stylesheets filter='cssrewrite' '%kernel.root_dir%/../vendor/fortawesome/font-awesome/css/font-awesome.min.css' %} <link href="{{ asset_url }}" type="text/css" rel="stylesheet"/> {% endstylesheets %} 

Но он не переписывает URL-адрес файлов шрифтов, он остается таким же, и значки обычно не загружаются:

 src: url('../fonts/fontawesome-webfont.eot?v=4.0.3'); 

Я знаю, мы не можем создавать URL-адреса, расположенные за пределами webroot, но, может быть, assetic может автоматически установить эти зависимости в / web?

Единственный способ, который я вижу сейчас, – скопировать эти ресурсы в / web dir с помощью сценария компоновки после установки, но я бы хотел найти лучший способ.

Благодаря!

Отвечая на вопрос о канале #symfony, и единственный ответ, который я должен использовать, – это включить их в config.yml под assetic. Исходный код:

 assetic: java: /usr/bin/java use_controller: false bundles: [ CorvusFrontendBundle, CorvusAdminBundle ] assets: font-awesome-otf: inputs: '%kernel.root_dir%/Resources/public/fonts/FontAwesome.otf' output: 'fonts/FontAwesome.otf' font-awesome-eot: inputs: '%kernel.root_dir%/Resources/public/fonts/fontawesome-webfont.eot' output: 'fonts/fontawesome-webfont.eot' font-awesome-svg: inputs: '%kernel.root_dir%/Resources/public/fonts/fontawesome-webfont.svg' output: 'fonts/fontawesome-webfont.svg' font-awesome-ttf: inputs: '%kernel.root_dir%/Resources/public/fonts/fontawesome-webfont.ttf' output: 'fonts/fontawesome-webfont.ttf' font-awesome-woff: inputs: '%kernel.root_dir%/Resources/public/fonts/fontawesome-webfont.woff' output: 'fonts/fontawesome-webfont.woff' filters: cssrewrite: ~ yui_js: jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.8.jar lessphp: file: "%kernel.root_dir%/../vendor/oyejorge/less.php/lessc.inc.php" apply_to: "\.less$" 

Затем вызовите файл css следующим образом:

 {# Common Stylesheets #} {% stylesheets filter="?cssrewrite" '%kernel.root_dir%/Resources/public/css/font-awesome.min.css' '@CorvusCoreBundle/Resources/public/css/common.less' %} <link rel="stylesheet" href="{{ asset_url }}" /> {% endstylesheets %} 

И, наконец, сброс файлов. Однако, по моему опыту, я получаю дубликаты файлов для самих шрифтов. Я, наверное, делаю что-то глупое.

НТН,

Tam

кредит: https://gist.github.com/ilikeprograms/a8db0ad7824b06c48b44

Обновление Июнь 2015: ответ был отправлен для версии 2.1 / 2.3 Symfony2. Этот ответ может быть применен или не к самой последней версии: вам нужно будет проверить

Большой ответ выше, но в тех случаях, когда ваши шрифты не хранятся в каталоге приложения, это не работает. Мои файлы CSS хранятся в моем собственном пакете, поэтому, чтобы убедиться, что они найдены, мне нужно было настроить app/config/config.yml ;

 assetic: debug: "%kernel.debug%" use_controller: false bundles: - AjtrichardsAdminBundle - AjtrichardsMainBundle assets: font-awesome-ttf: inputs: '@AjtrichardsMainBundle/Resources/public/fonts/icons.ttf' output: 'fonts/icons.ttf' font-awesome-woff: inputs: '@AjtrichardsMainBundle/Resources/public/fonts/icons.woff' output: 'fonts/icons.woff'