php - Symfony Assets bundle

标签 php css symfony bundle assets

在 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/

相关文章:

symfony - 安装 Symfony 时出错,声明 DependencyInjection PSR php,怎么办?

javascript - PHP 中的 CSS 样式在 "onclick"脚本后丢失 — 需要帮助保持 HTML 表格具有原始 CSS 样式

php - 如何通过 FormBuilder 的字段传递 Twig 参数

javascript - 我正在尝试向我正在构建的网站添加下拉菜单(HTML/CSS/JavaScript)

HTML/CSS 使页眉和导航粘在页面顶部

javascript - Jquery 函数 submit() 在 ajax 成功函数中不起作用

PHP 重定向不适用于包含 SQL 查询的脚本

php - 需要使用 Paypal Mass Pay API 通过 IPN 捕获和存储收款人的详细信息

css - Bootstrap 网格系统 - 如何使两列具有相同的高度?

symfony - 在管理类(不是 Controller 类)中使用 getParameter()