Включить содержимое файла CSS в ветку

Допустим, я использую Webpack и правильно создал файл Css в «build/theme/mail.css». Я хочу включить СОДЕРЖИМОЕ этого файла в свою ветку.

{% include "https://mysite.io/build/theme/mail.css" %} не работает, говоря, что не может найти файл (но он существует).

I don't want that because im using an inliner, and absolutly need the #CONTENT in my twig.

Вы пробовали с source() ?

user3013440 18.12.2020 18:28

Да и не работает

Ggs 18.12.2020 18:37

Поместите файл CSS в папку просмотра, а затем включите

DarkBee 18.12.2020 18:49

Я использую webpack, поэтому файл css находится в папке сборки, было бы проще положить в папку просмотра...

Ggs 18.12.2020 19:04
5 способов использования оповещений, предупреждений, ошибок, сообщений об успехе в Bootstrap
5 способов использования оповещений, предупреждений, ошибок, сообщений об успехе в Bootstrap
Bootstrap - это популярный front-end фреймворк, который делает веб-разработку проще и быстрее. Использование Bootstrap растет по мере того, как все...
Как сделать меню гамбургера только на CSS
Как сделать меню гамбургера только на CSS
Недавно я делал небольшие изменения на своем сайте , когда я вновь обнаружил меню гамбургера, которое я сделал для него. В нем нет ничего особенного,...
Полеты по миру фронтенда, том 9
Полеты по миру фронтенда, том 9
Мир фронтенда снова растет быстрее, чем население Земли. За всеми новостями и тенденциями в нем становится почти так же трудно уследить, как за...
Создание фильтров для вашего сайта
Создание фильтров для вашего сайта
Фильтры - удобный инструмент в арсенале веб-дизайнера. Они позволяют изменять элементы на странице с помощью всего нескольких строк кода. Эти...
Библиотека Bootstrap
Библиотека Bootstrap
Bootstrap - это бесплатный набор инструментов для разработки веб-приложений с открытым исходным кодом, разработанный компанией Twitter. Написанный на...
Уроки CSS 28
Уроки CSS 28
Здравствуйте, дорогие читатели, я Ферди Сефа Дюзгюн, сегодня мы продолжим с вами уроки css.
0
4
351
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете создать собственное расширение ветки и использовать file_get_contents.

Расширение:

<?php

namespace App\Twig;

use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;

class GetPublicFileContentExtension extends AbstractExtension
{
    /** @var string */
    private $publicPath;

    public function __construct(ParameterBagInterface $parameterBag)
    {
        $this->publicPath = $parameterBag->get('kernel.project_dir') . '/public/';
    }

    public function getFunctions(): array
    {
        return [
            new TwigFunction('get_public_file_content', [$this, 'getPublicFileContent']),
        ];
    }

    public function getPublicFileContent(string $filepath)
    {
        return file_get_contents($this->publicPath . $filepath);
    }
}

Ветка:

{{ get_public_file_content('build/theme/mail.css') }}
Ответ принят как подходящий

Пробовал файл получить содержимое, не работает. Нашел решение:

twig:
    paths:
        '%kernel.project_dir%/public': public

Добавить путь ветки в общедоступный каталог

А затем используйте:

        {% apply inline_css(source(theme_asset('@public/build/theme/email.css'))) %}

И добавьте webpackconfig для сборки файла scss в public/build

Спасибо вам всем.

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