Symfony recommends putting assets in the web folder。
他们还评论了使用资产方法。为什么需要资产方法?它只需要输入链接就可以占用更多的字符。
为什么:
<img src="{{ asset('img/social/facebook.png') }}" />
比这更好:
<img src="/img/social/facebook.png" />
我觉得我必须错过一些原因。
答案 0 :(得分:10)
您的主目录是\ web
你的config.yml中的:
assets:
packages:
downloads:
base_path: images/yesterday/answers/download/
attachment:
base_path: stack/post/answers/
在这种情况下,downloads
和attachment
是&#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;,因此希望网站读者不必再次下载相同的文件,因为他们第一次发送文件。
此实例中的资产标签被赋予原始文件名,但它仅用作对唯一重命名文件的索引中的查找 - 永远不需要更改的文件,因此可以标记为可缓存的可能年份