0

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

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

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

4

1 回答 1

2

因为您可能甚至不应该那样使用它。您可能应该像这样将 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,而在开发环境中,如果您根本不使用资产,您将拥有您所期望的一切。

此外,如果您使用lessorsass或需要预编译的东西,您可以只包含这些文件并告诉assetic 在它们发生更改时自动重新编译它们。

于 2013-10-06T09:35:50.063 回答