Проблема наследования таблиц стилей Twig — Symfony 4

Поскольку я работаю с Symfony 4 и Twig, я создал некую структуру для расширения шаблонов и включения некоторых частей.

Мне нужна внешняя и внутренняя страница для моего проекта.

Структура:

Проблема наследования таблиц стилей Twig — Symfony 4

Я включил base/head.html.twig внутри base.html.twig:

Проблема наследования таблиц стилей Twig — Symfony 4

base/head.html.twig этот шаблон содержит следующее:

Проблема наследования таблиц стилей Twig — Symfony 4

А теперь я хотел бы получить таблицу стилей специально для бэкэнда:

Проблема наследования таблиц стилей Twig — Symfony 4

И вот в чем проблема. Потому что он не будет унаследован base/head.html.twig.

Я искал его в Интернете и пробовал несколько вещей. Может быть, вы знаете ответ?

Мой прокси мешает мне видеть картинки. Есть ли способ опубликовать это по-другому?

Cid 12.03.2019 16:18

Для этого вам нужно использовать embed вместо include (twig.symfony.com/doc/2.x/tags/embed.html), но я бы порекомендовал вам скопировать содержимое из base/head.html.twig прямо в base.html.twig. С моей точки зрения, более понятно иметь все в одном базовом шаблоне.

Fabian Schmick 12.03.2019 16:18

@Fabian - Не знаете, как встраивание решит эту проблему?

DarkBee 12.03.2019 16:39

@DarkBee «Он позволяет вам включать содержимое другого шаблона, как это делает включение. Но он также позволяет вам переопределять любой блок, определенный внутри включенного шаблона, например, при расширении шаблона». это то, чего пытается добиться автор, если я правильно понял вопрос.

Fabian Schmick 12.03.2019 16:45

Не совсем - это значит, что встраивание будет в каждый шаблон, а не внутрь base.html

DarkBee 12.03.2019 16:48

Вот почему я рекомендую копировать контент в base.html напрямую. Это будет самое простое и чистое решение.

Fabian Schmick 12.03.2019 16:51

Вы не указали в своем комментарии, что встраивание будет в каждый шаблон, который расширяет base.twig, это то, на что я пытаюсь указать

DarkBee 12.03.2019 16:54

@Viperium - пожалуйста, не отправляйте код в виде изображения

DarkBee 12.03.2019 16:59

@DarkBee Извините, как лучше всего опубликовать код?

Viperium 13.03.2019 08:51

@Fabian Я проверил это с помощью встраивания, но оно не заработало.

Viperium 13.03.2019 08:52

@Viperium, просто опубликуйте код в редакторе и отметьте его как код кнопкой {}

DarkBee 13.03.2019 08:57
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
11
336
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, вы можете использовать горизонтальный повторное использование для этого. Настройка, которую вы бы использовали, должна быть примерно такой:

голова.ветка

{% block head %}
<!DOCTYPE html>
    <html>
    <head>
        <title>{% block title %}Title{% endblock %}</title>
        {% block stylesheets %}
        <link rel = "stylesheet" href = "foo.css" />
        {% endblock %}
    </head>
{% endblock %}

база.ветка

{% use 'head.twig' %}

{% block content %} {% endblock %}

фактический_шаблон.twig

{% extends 'base.twig' %}

{% block title %}My title{% endblock %}
{% block stylesheets %}
    {{ parent() }}
    <link rel = "stylesheet" href = "bar.css" />
{% endblock %}

{% block content %}
    {{ block('head') }} {# inject head.twig in content #}
{% endblock %}

демо

В любом случае лучше вставлять :)

Fabian Schmick 12.03.2019 16:54

Да и нет, вторая часть, которую вы предложили, еще лучше. Просто поместите головную часть в полную базу

DarkBee 12.03.2019 16:56

Я попробовал это. И это работает как аспектированное. Только я использовал его в base.html.twig со следующим: {% use 'base/head.html.twig' %} и под ним {{ block('head') }}

Viperium 13.03.2019 08:49

Другие вопросы по теме