2013-03-21 208 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語法。

我希望這可以解決您的問題