如何获取图像Symfony2 / Twig的绝对文件系统路径

时间:2014-04-10 12:31:40

标签: symfony twig dompdf

我正在使用带有twig的Symfony2生成HTML,但是我生成的HTML不适用于Web浏览器,而是传递给将HTML转换为PDF文档的库。

我面临两个相关问题。

问题1.此PDF将包含图像,我不希望这些图像直接从互联网上可见(例如,我不希望这些图像显示在webroot下)。通常我将资产放在“site / src / path-to-bundle / Resources / public / assets”中,但我不希望这个图像在Web上可见。任何人都可以建议一个好的文件夹,把“资产”放在那里,不能通过网络访问。 (只是尝试与Symfony2命名技术保持一致,以及其他程序员通常如何做到这一点)

问题2.由于我生成的HTML用于HTML到PDF生成器,因此在文件系统上引用具有绝对路径的图像是最实际的(在这种情况下,Web路径或URL不适合)。 / p>

例如

<!-- This is the correct HTML code that is needed in this situation -->
<img src="/home/user/absoulte-file-system-path-to/image.png" />

<!-- These are actually incorrect in this situation -->
<img src="assets/image.png" />
<img src="http://www.somedomain.com/assets/image.png" />

我想知道如何获得上面提到的图像的绝对路径(我不介意这是在Twig模板中还是在控制器中完成)

1 个答案:

答案 0 :(得分:8)

你app / config / config.yml

中的

twig:
    globals:
        root_path: %kernel.root_dir%

您可以引用具有根项目的相对路径的资产

 <img src="{{ root_path }}/../secret-folder/image.png" />