在 Symfony 2 中,我像这样使用 Assets bundle 。
{% stylesheets
'bootstrap/css/bootstrap.css'
'bootstrap/flat/css/flat-ui.css'
filter='cssrewrite'
filter='?yui_css'
%}
它工作得很好,但是我的@font-face 资源没有加载。它们在开发环境中运行良好,但一旦将 css bundle 到生产环境中的单个文件中,就会加载默认字体?
cssrewrite 工作正常,因为我检查了相对路径是否已正确更新以指向正确的区域,我什至尝试使用无效的绝对 URL。
我试过转编译,但没有用。唯一可行的方法是将其从 bundle 中删除,然后直接加载。
symfony Assets bundle 和@font-face 是否存在某种错误 :S :S :S
下面是@font-face打包后在prod环境下的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")
最佳答案
关于 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
您可能想尝试以下 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
语法。
我希望这能解决你的问题
关于php - Symfony Assets bundle ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15559704/