在小树枝中包含CSS文件的内容



假设我使用Webpack,并在"build/theme/mail.css">
我想将此文件的内容包含到我的小树枝中。

{% include "https://mysite.io/build/theme/mail.css" %}不起作用,表示找不到文件(但它存在(。

我不想这样,因为我使用的是内联,而且绝对需要我的小树枝中的#CONTENT

尝试了文件获取内容,但没有成功。找到解决方案:

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

向公用目录添加一个分支路径

然后使用:

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

并添加一个webpackconfig以将scss文件构建到public/build 中

谢谢大家。

您可以创建自定义分支扩展并使用file_get_contents

扩展:

<?php
namespace AppTwig;
use SymfonyComponentDependencyInjectionParameterBagParameterBagInterface;
use TwigExtensionAbstractExtension;
use TwigTwigFunction;
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);
}
}

Twig:

{{ get_public_file_content('build/theme/mail.css') }}

最新更新