Symfony Twig:为什么要使用资产方法?

时间:2017-05-24 21:09:53

标签: php symfony twig symfony-2.3

Symfony recommends putting assets in the web folder

他们还评论了使用资产方法。为什么需要资产方法?它只需要输入链接就可以占用更多的字符。

为什么:

<img src="{{ asset('img/social/facebook.png') }}" />

比这更好:

<img src="/img/social/facebook.png" />

我觉得我必须错过一些原因。

2 个答案:

答案 0 :(得分:10)

您的主目录是\ web

你的config.yml中的

assets:
    packages:
        downloads:
            base_path: images/yesterday/answers/download/
        attachment:
            base_path: stack/post/answers/ 

在这种情况下,downloadsattachment&#39;部分&#39;

而不是写这段代码:

<img src="images/yesterday/answers/download/facebook.png" />
<img src="stack/post/answers/photo.jpeg" />

您可以使用:

<img src="{{ asset(facebook.png, 'downloads') }}" />
<img src="{{ asset(photo.jpeg, 'attachment') }}" />

因为您在视图中没有很长的路径,而且您还组织了更多的项目为部分分类

此处有更多信息:http://symfony.com/doc/current/reference/configuration/framework.html#assets

答案 1 :(得分:3)

因为Twig标记asset标记在后台运行PHP代码,所以它可以改变输出。例如,我有一个系统在运行,其中web / assets / js /目录(和img /或css /)中的原始文件根据内容重命名 - 这意味着当它们由Web服务器提供服务时,它们可以被标记为永久缓存此文件&#39;,因此希望网站读者不必再次下载相同的文件,因为他们第一次发送文件。

此实例中的资产标签被赋予原始文件名,但它仅用作对唯一重命名文件的索引中的查找 - 永远不需要更改的文件,因此可以标记为可缓存的可能年份