Я хочу использовать загрузчик Twitter с Symfony 2 без использования пакетов. Мне удалось установить MopaBootstrapBundle, но решил удалить его и использовать обычный TB.
Настройка
composer.json
"require": {
"twbs/bootstrap": "dev-master"
}
Итак, после установки с композитором путь [project_path]/vendor/twbs/bootstrap
идентичен: https://github.com/twbs/bootstrap
config.yml
# Assetic Configuration
assetic:
debug: %kernel.debug%
use_controller: false
bundles: [ ]
filters:
cssrewrite: ~
less:
node: /usr/bin/nodejs
node_paths: [/usr/lib/nodejs:/usr/lib/node_modules]
apply_to: "\.less$"
Я создал новый пакет для моего проекта AcmeDemoBundle
и добавил папку [project_path]/src/Acme/DemoBundle/Resources/public/less
, содержащую два файла:
-
variables.less
- копия[project_path]/vendor/twbs/bootstrap/less/variables.less
, которую я могу изменить без влияния на исходный пакет TB -
style.less
style.less содержание:
@import "../../../../../../vendor/twbs/bootstrap/less/bootstrap.less";
@import "variables.less";
// any local changes should go below this line
[some local less code]
В base.html.twig
{% stylesheets '@AcmeDemoBundle/Resources/public/less/style.less' %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
Проблема
Все работало нормально, пока я не захотел использовать Glyphicons, включенный в Twitter Bootstrap.
<span class="glyphicon glyphicon-search"></span>
Glyphicons использует шрифты для представления значков, расположенных в Twitter Bootstrap здесь: https://github.com/twbs/bootstrap/tree/master/fonts
Чтобы использовать их, мне пришлось создать следующую символическую ссылку.
[project_path]/web/fonts -> [project_path]/vendor/twbs/bootstrap/fonts/
В среде prod
все выглядит чудесно (за исключением того, что шрифт отображается немного хрустящим), но в среде dev
шрифт не будет загружаться из-за присутствия /app_dev.php/
в местоположении файла. Поэтому я получаю эту ошибку в консоли браузера:
GET http://cmmp.localdev/app_dev.php/fonts/glyphicons-halflings-regular.woff 404 (Not Found) cmmp.localdev/app_dev.php/:1
GET http://cmmp.localdev/app_dev.php/fonts/glyphicons-halflings-regular.ttf 404 (Not Found) /app_dev.php/fonts/glyphicons-halflings-regular.ttf:1
GET http://cmmp.localdev/app_dev.php/fonts/glyphicons-halflings-regular.svg 404 (Not Found) /app_dev.php/fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular:1
Использование фильтра cssrewrite
только изменяет ошибки в консоли на dev
на:
GET http://cmmp.localdev/Resources/public/fonts/glyphicons-halflings-regular.woff 404 (Not Found) cmmp.localdev/:75
GET http://cmmp.localdev/Resources/public/fonts/glyphicons-halflings-regular.ttf 404 (Not Found) cmmp.localdev/:75
GET http://cmmp.localdev/Resources/public/fonts/glyphicons-halflings-regular.svg 404 (Not Found) cmmp.localdev/app_dev.php/:75
Вопрос
Я боролся в течение нескольких дней и, несмотря на множество вопросов и решений, найденных здесь на StackExchange, я не смог это исправить.
Что мне не хватает? Как это исправить?