【问题标题】:Symfony2 and Twitter Bootstrap glyphiconsSymfony2 和 Twitter Bootstrap 字形图标
【发布时间】:2014-05-06 07:41:04
【问题描述】:

我创建了一个 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 提供的字形图标,我只需要包含适当的字体。

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

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

【问题讨论】:

    标签: php symfony twitter-bootstrap-3 assetic


    【解决方案1】:

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

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

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

    阅读Symfony docs 了解此事。

    【讨论】:

    • 我做到了。 URL 被重写为一个新的。但它仍然不起作用。在重写之前,URL 类似于mysite.org/app_dev.php/fonts/glyphicons-halflings-regular.ttf,在mysite.org/Resources/public/fonts/… 之后。
    • 你能发布你的{% stylesheets %} 块吗?
    • 我已经更新了答案,请检查您使用的路径符号。
    • 我更新了我的问题并包含了 css 代码。 @albertedevigo:您建议包含 css 文件的方式根本不起作用。意味着 Symfony 不再包含任何 CSS。
    • 嗯,这种方式是正确的,请参阅文档。所以它应该工作。也许你没有正确地倾销你的资产。尝试cache:clear,然后是assets:install,然后是assetic:dump。安装资产后检查是否所有内容都在 web 目录下。
    【解决方案2】:

    我也有这个问题。

    @albertedevigo 的回答很好,但在某些情况下您可能需要采取额外的预防措施:

    在将其文件移动到您的网络文件夹之前,请确保您已提取完整的引导 zip。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-23
      • 2012-12-23
      • 2012-09-07
      • 1970-01-01
      • 2013-03-02
      • 2015-06-27
      • 1970-01-01
      • 2013-11-26
      相关资源
      最近更新 更多