Symfony 2资产路径

时间:2013-10-06 09:29:48

标签: php symfony assets

我不明白assethic路径是如何运作的。

{% block stylesheets %}
            <link href="{{ asset('/bundles/dproc/css/base.css') }}" type="text/css" rel="stylesheet" />
        {% endblock %}

我的css和图片位于/ bundles / dproc /目录中。我在下面显示的代码有效,但我不明白为什么我应该使用资产功能,我可以这样做并得到相同的结果

{% block stylesheets %}
            <link href="/bundles/dproc/css/base.css" type="text/css" rel="stylesheet" />
        {% endblock %}

那资产的功能是什么?或者我的路径应该如何使用资产功能?

1 个答案:

答案 0 :(得分:2)

因为你可能不应该那样使用它。你可能应该像这样用css使用Assetic:

{% block stylesheets %}
    {% stylesheets
    '/bundles/dproc/css/base.css' {# this will just get base.css #}
    '/bundles/dproc/css/mycustomdir/* {# this will find all css files in that dir #}
    %}
    <link href="{{ asset_url }}" rel="stylesheet">
    {% endstylesheets %}
{% endblock %}

通过这样设置(使用默认配置),在 dev 环境中,您将获得完全相同的内容,就像您刚使用<link .... >而没有资产一样。但在生产环境中,您的整个stylesheets资产块将合并到一个文件中,以减少请求数。

稍后,您可以设置一些css和javascript minifiers并使它们在生产环境中运行。所以,当你切换到制作时,你将拥有漂亮,经济的 css javascript ,而在开发环境中,如果你没有,你会得到你所期望的完全使用资产。

此外,如果您使用lesssass或需要预编译的内容,您可以只包含这些文件,并告诉资产者在更改后自动重新编译它们。