Я пытаюсь создать меню со значками для каждого элемента.
Я использую (или пытаюсь)
- MopaBootstrapBundle
- KnpMenuBundle
- ШрифтПотрясающий
Структура меню отображается и работает нормально, но значки не отображаются. Может ли кто-нибудь поставить меня на правильный путь здесь?
Вот что я сделал до сих пор:
Настройка config.yml:
assetic:
debug: "%kernel.debug%"
use_controller: false
filters:
cssrewrite: ~
cssembed:
jar: %kernel.root_dir%/Resources/java/cssembed.jar
apply_to: "\.css$|\.less$"
yui_css:
jar: "%kernel.root_dir%/Resources/java/yuicompressor.jar"
yui_js:
jar: "%kernel.root_dir%/Resources/java/yuicompressor.jar"
[...]
mopa_bootstrap:
form: ~ # Adds twig form theme support
menu: ~ # enables twig helpers for menu
icons:
icon_set: fontawesome4
shortcut: icon
Включение стилей начальной загрузки в мой /app/Resources/MopaBootstrapBundle/views/layout.html.twig
{% block head_style %}
{{ parent() }}
{% stylesheets filter='less,cssrewrite,?yui_css'
'bundles/mopabootstrap/less/mopabootstrapbundle-fa4.less'
%}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}
{% endblock head_style %}
Составление моего меню:
public function createMainMenu(FactoryInterface $factory, array $options)
{
$menu = $factory->createItem(
'root', array(
'navbar' => true,
)
);
// Main Menu -> Config
$menu->addChild('Item 1', array(
'route' => 'home',
'caret' => true,
'icon' => 'fa-home',
)
);
$dropdown = $menu->addChild('Item 2', array(
'dropdown' => true,
'caret' => true,
'icon' => 'fa-archive',
)
);
$dropdown->addChild('Sub-item 1', array('route' => 'si1'));
$dropdown->addChild('Sub-item 2', array('route' => 'si2'));
$dropdown->addChild('Sub-item 3', array('route' => 'si3'));
return $menu;
}
Глядя на исходный код страницы, я обнаружил, что все классы установлены правильно. Однако в связанных таблицах стилей я нашел это:
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url(../../bundles/mopabootstrap/fonts/fontawesome-webfont.eot?v=4.2.0);
src: url(../../bundles/mopabootstrap/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0) format('embedded-opentype'), url(../../bundles/mopabootstrap/fonts/fontawesome-webfont.woff?v=4.2.0) format('woff'), url(../../bundles/mopabootstrap/fonts/fontawesome-webfont.ttf?v=4.2.0) format('truetype'), url(../../bundles/mopabootstrap/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular) format('svg');
font-weight: normal;
font-style: normal;
}
Путь ../../bundles/mopabootstrap/fonts/
не существует в моей настройке, что объясняет отсутствие значков. Однако я не могу понять, как я могу изменить его.
В документации я нашел ссылку на определение переменной @icon-font-path
. Я немного не понимаю, где его определить и с каким значением.
NB: файлы шрифтов находятся в моей папке web/fonts
. Все это происходит на машине с Windows.
ОБНОВЛЕНИЕ:
Я нахожу файлы FontAwesome в этих местах:
<my_project_path>\web\bundles\mopabootstrap\fonts\fa4
<my_project_path>\web\fonts
Только файлы шрифтов Glyphicon можно найти в
<my_project_path>\web\bundles\mopabootstrap\bootstrap\fonts
.
Я также заметил, что когда я определяю @icon-font-path: "../fonts/";
в /src/<my_bundle>/Resources/public/less/mystyles.less
, путь в результирующем файле CSS будет src: url('../fonts/fontawesome-webfont.eot?v=4.2.0');
.
Однако, когда я загружаю свое приложение и вызываю файл CCS, сброшенный с помощью assets, путь src: url(../../Resources/public/fonts/fontawesome-webfont.eot?v=4.2.0);
app/console assets:install
. Это должно создать каталоги/bundles/etc
. Используйте--symlink
для символических ссылок, а не для копирования. - person qooplmao   schedule 30.11.2014app/console assets:install
, но это ничего не изменило. - person matt_jay   schedule 30.11.2014