如何从Web默认文件夹以外的文件夹加载资源?

时间:2014-03-20 13:23:31

标签: php symfony twig assetic

这是我的架构文件夹:

This is my architecture folders

我想使用asset()在位于

中的树枝模板中加载图片

sites/sf2.local/views/index.html.twig

,图片在

sites/sf2.local/assets/img/logo_om.gif

所以在我的config.yml中我添加了这一行:

assetic:
    read_from:      %kernel.root_dir%/../sites/sf2.local/assets/

但它不起作用,我无法使用以下方式加载图片:

<img src="{{ asset('img/logo_om.gif') }}" alt="img" />

在树枝模板中..

我该怎么做?

1 个答案:

答案 0 :(得分:3)

首先,我认为assets错误assetic。 Twig函数asset只会使您的资产成为绝对值。它不会影响这些资产的读取位置。本文档中描述了这一点:

Linking to assets

另一方面,assetic描述了从中读取编译(以及可选的过滤,合并,uglified等)资源的位置。这仅适用于JSCSS

可能的解决方案:

打开终端,导航到您的web符号链接目录:

cd /.../sf2/web
ln -s ../sites/sf2.local/assets/img
ln -s ../sites/sf2.local/assets/js
ln -s ../sites/sf2.local/assets/css

现在,您的网络中还有3个符号链接(不是副本),而asset('img/some-pic.png')实际上是以符号链接的img目录为目标。

此符号链接是否可以接受?

替代解决方案(整个资产):

cd /.../sf2/web
ln -s ../sites/sf2.local/assets

并使用它:

asset('assets/img/some-pic.png')