2013-10-06 42 views
0

我不明白怎么路径工程assethic ..Symfony的2 assetic路径

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

我的CSS和图像都在/包/ DPROC /目录。我的代码显示在下面的作品,但我无法理解为什么我应该使用资产的功能,我可以像下面这样做,并得到同样的结果

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

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

+0

另外,你认为你的应用程序可以移动到另一个目录级别,而不是“myapp.com”,它可能是“myapp.com/foo/bar”。这是'资产'函数派上用场,因为它不仅附加了'/',而且附加了应用程序的基本路径('/ foo/bar') –

回答

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 .... >没有assetic。但在生产环境中,您的整个stylesheets资产块将合并为一个文件以减少请求数量。

稍后,您可以设置一些css和javascript缩小器,并使它们在生产环境中运行。所以,当你切换到生产时,你将会拥有不错的经济效益cssjavascript,而在开发环境中,如果你根本没有使用资产,你将拥有完全符合你的期望。此外,如果您使用lesssass或需要预编译的内容,您可以只包含这些文件,并告诉资产在更改时自动重新编译它们。

+0

好的,我会用你的例子,谢谢 –

+0

@TikoM如果它适用于你请接受答案:) –