Symfony 2 资产路径


Symfony 2 assetic paths

我不明白资产路径是如何工作的。

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

我的css和图像在/bundles/dproc/目录中。我在下面显示的代码有效,但我不明白为什么要使用 asset 函数,我可以这样做并获得相同的结果

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

那么资产的功能是什么呢?或者我的路径应该是什么样子的资产函数?

因为您可能甚至不应该那样使用它。您可能应该像这样将 Assetic 与 css 一起使用:

{% 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 %}

通过像这样设置它(使用默认配置),在开发环境中,您将获得与仅使用没有资产的<link .... >完全相同的东西。但在生产环境中,您的整个stylesheets资产块将合并到一个文件中,以减少请求数量。

稍后,您可以设置一些 css 和 javascript 简化器,并使它们在生产环境中运行。因此,当你切换到生产环境时,你将拥有漂亮、经济的 cssjavascript,而在开发环境中,如果你根本不使用 assetic,你将拥有你所期望的。

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