如何在Symfony中访问Twig中的web文件夹?

Zwe*_*012 0 php symfony twig

我的捆绑包中有一个Twig模板,我希望能够访问我想要显示我的图片的Symfony应用程序中的web文件夹.web文件夹位于主目录中.我的图片链接来自我的数据库:

uploads/documents/image1.jpg
Run Code Online (Sandbox Code Playgroud)

在我的Twig模板中,我必须定义我的两个变量:

<img src="/{{ var.uploadDir }}{{ var.path }}" width="300px" height="150px">
Run Code Online (Sandbox Code Playgroud)

但图像未显示.它说找不到URL.是否可以在不使用"资产"的情况下访问Web路径?

sja*_*agr 6

您是否尝试通过asset函数传递变量?

<img src="{{ asset(var.uploadDir ~ var.path) }}" width="300px" height="150px">
Run Code Online (Sandbox Code Playgroud)

从理论上讲,这会产生相同的结果,所以你需要检查一些事情:

  1. 必须web/在Apache设置中将该文件夹设置为docroot
  2. 验证该路径中是否存在该文件(例如,web/uploads/documents/image1.jpg必须存在)
  3. 验证串联var.uploadDirvar.path实际产生有效路径.也许你忘记了代码中的某个地方,你实际上在每个相应的变量中都没有尾部斜杠或前导斜杠.然后,var.uploadDir ~ var.path可能产生/uploadsdocuments/image1.jpg明显不正确的产量.

  • 你的第一点非常好,我认为很多人都不知道 - 在Twig的`asset()`函数中连接字符串的能力.Symfony的文档总是在这里有硬编码值,并且不讨论`~`运算符本身.如果原始海报想要参考,这里有一个链接到Twig文档解释它:http://twig.sensiolabs.org/doc/templates.html#other-operators (2认同)