2013-03-21 113 views
4

在Symfony 2 Im中使用资产捆绑就像这样。Symfony资产捆绑

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

它可以很好地工作,但是我的@ font-face资源无法加载。他们在开发环境中工作得很好,但只要将css捆绑到生产环境中的单个文件中,默认字体会被加载呢?

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

我试着转动编译,这没有帮助。唯一有用的是从捆绑中删除它,并直接加载它。

是否有某种与symfony的资产打包和@字体面的bug:S:S:S

下面是被捆绑后的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

尝试在您的CSS中使用外部文件的绝对路径。它就像'/ bundles/acmedemo/css/bootstrap/flat/fonts/Flat-UI-Icons-16.eot'。应该在dev和prod env中都可以工作。 – 2013-03-21 23:41:04

回答

0

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

CSS文件中的相对URL与文件所在的目录相关的响应状态之一。

如果您的字体是从

bootstrap/css/bootstrap.css 

加载,CSS中的网址如下所示相对URL:

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

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

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

您可能想尝试以下URL样式

../../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语法。

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