Symfony Asset捆绑

时间:2013-03-21 22:52:20

标签: php css symfony bundle assets

在Symfony 2中我使用资产捆绑,如此。

{% stylesheets
            'bootstrap/css/bootstrap.css'
            'bootstrap/flat/css/flat-ui.css'
            filter='cssrewrite'
            filter='?yui_css'
%}

它完美无缺,但我的@ font-face资源无法加载。它们在开发环境中工作正常,但只要将css捆绑到生产环境中的单个文件中,就会加载默认字体?

cssrewrite工作正常,因为我检查了相对路径是否正确更新以指向正确的区域,我甚至尝试使用绝对URL,但是没有用。

我试过编译,但没有帮助。唯一有效的方法是从捆绑中删除它,然后直接加载它。

symfony资产捆绑和@ font-face是否存在某种错误:S:S:S

以下是捆绑后prod环境中@ font-face的css。

@font-face{font-family:"Flat-UI-Icons-16";src:url("../bootstrap/flat/fonts/Flat-UI-Icons-16.eot");src:url("../bootstrap/flat/fonts/Flat-UI-Icons-16.eot?#iefix") 

1 个答案:

答案 0 :(得分:0)

有一些关于URL in CSS files in this Stackoverflow page的好消息。

其中一个响应表明CSS文件中的相对URL与文件所在的目录相关。

如果您的字体是从

加载的
bootstrap/css/bootstrap.css

CSS中的URL看起来像以下相对URL:

../bootstrap/flat/fonts/Flat-UI-Icons-16.eot

这意味着浏览器将尝试获取以下字体

bootstrap/bootstrap/flat/fonts/Flat-UI-Icons-16.eot

您可能想尝试以下网址格式

../../bootstrap/flat/fonts/Flat-UI-Icons-16.eot

或者

../flat/fonts/Flat-UI-Icons-16.eot

我强烈推荐documentation about fixing css path with cssrewrite filter

请注意,如果您使用cssrewrite过滤器,则无法使用@YourAwesomeBundle语法。

我希望这可以解决您的问题