【问题标题】:How to load assets from a folder other than the web default folder?如何从 Web 默认文件夹以外的文件夹加载资产?
【发布时间】:2014-03-20 13:23:30
【问题描述】:

这是我的架构文件夹:

我想在位于

的树枝模板中使用 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" />

在树枝模板中..

我该怎么做?

【问题讨论】:

  • 这个asset('img/logo_om.gif')生成什么路径?
  • &lt;img src="/img/logo_om.gif" alt="img"&gt;
  • 我已经添加了解释和可能的解决方案,所以请查看;)

标签: php symfony twig assetic


【解决方案1】:

首先,我认为您将assets 误认为assetic。 Twig 函数asset 只不过是让你的资产变得绝对。它不会影响从哪里读取这些资产。本文档中对此进行了描述:

Linking to assets

另一方面,assetic 描述了从何处读取已编译(以及可选的过滤、合并、丑化等)资源。这只适用于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')

【讨论】:

  • 感谢您的解释,它可以工作:) 但是没有其他使用符号链接的解决方案吗?因为对于每个新文件夹,我都必须执行此命令...
  • 很高兴我能帮上忙。 ;) 您可以符号链接整个../sites/sf2.local/assets 并用作asset('assets/img/some-pic.png')。这样你就不需要symlink 一些未来的目录;)
  • 是的,无论如何我没有看到任何其他解决方案.. 谢谢:)
猜你喜欢
  • 2021-08-31
  • 1970-01-01
  • 2022-01-21
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-22
相关资源
最近更新 更多