Symfony2和Twitter Bootstrap glyphicons

时间:2014-05-06 07:41:05

标签: php symfony twitter-bootstrap-3 assetic

我创建了一个Bundle,以便将Twitter Bootstap包含到我的项目中。我知道,那里有现有的套装,但我不想自己控制它。这意味着我不想安装Less编译器和类似的东西。

如果我将以下内容包含在我的模板中,那么.js和.css文件会很好地应用:

{% block javascripts %}
{% javascripts
'@MyAssetBundle/Resources/public/js/jquery.min.js'
'@MyAssetBundle/Resources/public/js/bootstrap.js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
{% endblock %}

{% block stylesheets %}
{% stylesheets '@MyAssetBundle/Resources/public/css/*' filter='cssrewrite' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
{% endblock %}

我只是努力包含适当的字体才能使用Bootstrap提供的glyphicons。

根据css定义,字体应该在相对于css文件的../fonts中可用。事实上我把它们放在那里。但Symfony2将这些相对网址解析为绝对路径,并没有为此找到路径。

我该如何解决这个问题?我真的觉得我没有在这里得到Symfony2概念的重要部分。

2 个答案:

答案 0 :(得分:6)

使用Assetic提供的cssrewrite过滤器来更正CSS文件中的路径。

{% stylesheets filter='cssrewrite'
    'bundles/myassetbundle/css/bootstrap.min.css' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

确保您使用的是bundles/myassetbundle/...符号,而不是@MyAssetBundle符号。

关于此事,请阅读Symfony docs

答案 1 :(得分:0)

我也有这个问题。

@albertedevigo的答案工作正常,但可能会出现需要采取额外预防措施的情况:

确保在将文件移动到网络文件夹中之前已提取完整的引导程序zip。

我首先只是从ZIP内部移动它们,它们在我的Windows资源管理器中显示为绿色,我无法访问它们。因此,请确保在移动其内容之前先解压缩该文件夹,并对文件进行完全访问权限。