Не могу разобратьcя:
{
block: 'logo',
mix: { block: 'header', elem: 'logo' },
content: [
{
elem: 'name',
content: {
block: 'image',
mix: {block: 'logo', elem: 'pic'},
url: 'карзина.svg',
alt: ' альтернативный текст '
}
}
}
Вопрос: Как сделать чтобы image блок находил картинку которая лежит в папке блока logo, но не хочется менять путь url
Если коротко, то это делает борщик.
Но как настраивать его — не подскажу ;-)
@mpyctam Универсально решить задачу в текущей постановке невозможно: блок
image
может оказаться в совершенно разных местах (и зачастую одновременно): в библиотеке или на проекте на разных уровнях переопределения. Поэтому, если вообще ничего не менять в указанном BEMJSON, найти картинку не получится.Однако есть несколько вариантов разный степени сложности, которые потребуют изменений в коде. 1) Самый простой — переложить картинку в бекграунд в CSS. 2) Как [1] + включить инлайнинг с помощью
borschik
. Потребуется вот такой конфиг:3) Считать BEMJSON динамическим и класть все используемые в нем картинки в отдельную папку, а пути указывать примерно так:
url: '/i/cart.svg'
— считаю, что это самый годный вариант.4) Если же есть уверенность, что это явно статическая картинка, относящаяся к конкретному блоку, но она обязана быть в
src
, то можно унести ее из BEMJSON в шаблоны и использовать внутри borschik.link().5) Как [4], но для BEMJSON. Это будет менее красиво, т.к. придется писать относительные пути от BEMJSON до картинок в блоках.
Еще хотел добавить. Нужно перестать хотеть в этом случае класть картинку в папку блока логотипа, так как:
В этом случае Вы в любом случае будете указывать какой то прямой путь до картинки логотипа, bemjson в этом смысле не отличается.
@tadatuta @tavriaforever ну вы чего человека пугаете? ) Из нашего опыта блок
лого
практически на всех проектах используется с одной и той же картинкой, максимум меняется модификатором что-то влого
.В таком случае нужно всего лишь преложить вынести шаблон блока лого.
А на страницу в BEMJSON подключать блок так
Использование блока лого «из проекта в проект» всегда ведет за собой изменение css просто до неузнаваемости. Так что картинку рядом с блоком положить это не затратно.
@voischev почему пугаем? это же и есть мой вариант [4] ;)
Видите, сколько вариантов мы предложили)
спасибо за бем.
@mpyctam бэм ;)