在带有 Symfony2 的 Twig 中使用 % stylesheets % 标签时通过 Twig 运行 CSS 文件
Posted
技术标签:
【中文标题】在带有 Symfony2 的 Twig 中使用 % stylesheets % 标签时通过 Twig 运行 CSS 文件【英文标题】:Run CSS file through Twig when using % stylesheets % tag in Twig with Symfony2在带有 Symfony2 的 Twig 中使用 % stylesheets % 标签时通过 Twig 运行 CSS 文件 【发布时间】:2012-06-17 11:46:25 【问题描述】:我在我的模板中包含 CSS 样式表,如下所示:
% stylesheets
"@SomeBundle/Resources/assets/css/default.css.twig"
"@SomeBundle/Resources/assets/css/global.css.twig"
%
<link rel="stylesheet" href=" asset_url " />
% endstylesheets %
但是我想通过 Twig 运行这些 CSS 文件,这在使用 % stylesheets %
标记时是否有可能,或者这是否需要其他方法。我已经尝试启用 twig
过滤器,但它不存在。
【问题讨论】:
stylesheets
标签与 Twig 无关。此标签由AsseticBundle
提供。你能澄清你的问题吗,我很难理解你试图达到的目标:)
@Matt 好吧,我想保留 Assetic 给我的好处,同时首先通过 Twig 运行样式表。
@Xeross 如果您能更具体地说明为什么要这样做,您可能会看到更好的结果。
【参考方案1】:
如果您将 css 作为内部样式表加载,则可以这样做。像这样的:
% block stylesheets %
parent()
% include 'AcmeBundle:Bundle:mycss.css.twig' %
% endblock %
然后 mycss.css.twig 模板将包含:
<style type="text/css">
/* */
</style>
【讨论】:
是的,我确实想到了这一点,但是您失去了将样式保存在单独缓存的文件中的好处。【参考方案2】:您希望通过使用 Twig 处理 CSS 来完成的最常见的事情应该可以使用 Sass、LESS 或类似的东西来实现,它们可以用作 Assetic 过滤器。谷歌发布的第一个教程是这个:http://alexandre-salome.fr/blog/Sass-Compass-Assetic-In-Ten-Minutes
诚然,如果您无法在您正在开发的生产服务器上运行 Ruby/Node.js/任何东西,这看起来并没有太大帮助,但应该可以基于一个创建 Assetic 过滤器Sass/LESS 的 php 端口(假设它们很好)如果是这样的话。
【讨论】:
以上是关于在带有 Symfony2 的 Twig 中使用 % stylesheets % 标签时通过 Twig 运行 CSS 文件的主要内容,如果未能解决你的问题,请参考以下文章
在 Symfony2 中使用 Twig 作为 JavaScript 的资产过滤器