在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")
答案 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
语法。
我希望这可以解决您的问题