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

Symfony Twig: Why use asset method?

Symfony recommends putting assets in the web folder

他们还对使用资产方法发表了评论。为什么需要资产方法?它比 link.

占用更多的字符

这是为什么:

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

比这更好:

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

我觉得我一定是遗漏了一些原因。

您的主目录是 \web

在你的config.yml(config/packages/framework.yaml 使用 Symfony 5 及更高版本):

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

在这种情况下 downloadsattachment 是您的 'sections'

改为编写此代码:

<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

因为 Twig 标签 asset 标签在幕后运行 PHP 代码,它可以改变输出。例如,我有一个系统 运行,其中 web/assets/js/ 目录(以及 img/ 或 css/)中的原始文件根据内容重命名 - 这意味着当它们由网络服务器提供服务,它们可以标记为 'cache this file forever',因此希望网站 reader 不必再次下载相同的文件,因为它们有第一次发送文件的时间。

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