gpt4 book ai didi

PHP:Twig:图像的相对路径?

转载 作者:行者123 更新时间:2023-12-02 01:19:18 25 4
gpt4 key购买 nike

想知道是否有办法在 Twig 模板引擎中使用相对于模板存储位置的路径。

场景如下:

我有一个 Typo3 网站,我的应用程序位于 fileadmin/myApplication 中。我使用 Twig 作为模板引擎来渲染从 JSON 文件动态加载的多语言内容。我的一些模板文件包含图像路径,考虑到 Typo3 的性质,这些图像的 src 路径需要为 fileadmin/myApplication/img/...

现在,如果我想测试应用程序的新版本,我希望能够创建目录 fileadmin/myApplication2.0,而无需更改模板文件内图像的路径。

有一些模板引擎(例如 raintpl,请参阅 this link )将相对路径转换为服务器文件路径。有没有一种简单的方法可以在 Twig 中实现相同的效果?

例如

templates/template.html 
img/logo.png

输出

<img src="fileadmin/myApplication2.0/img/logo.png">

rain.tpl 是这样做的:

 WYSIWYG - Path replace
This cool feature allows designers to create templates as regular HTML with images and styles with relative paths, RainTPL replaces automatically these paths with the correct server paths.

Absolute paths and paths ending with # will be not changed.

<link href="style.css" type="text/css" rel="stylesheet">
<img src="img/logo.gif">

Output html:

<link href="tpl/style.css" type="text/css" rel="stylesheet">
<img src="tpl/img/logo.gif">

Note: if you set raintpl::$base_url, RainTPL will replace the path with raintpl::$base_url.

最佳答案

src中的路径属性是相对 URL,而不是服务器上文件系统的相对文件路径,即您在目录中组织文件的方式。

相对 URL 将解析为模板所在文档的基本 URL。因此您可以使用相对 URL,但您需要知道它们与什么相关才能让它们正常工作。

在您的情况下,快速解决方案可能是使用

<img src="/img/logo.png">

如果您的网站位于网络根目录中。

另一种方法是使用一个模板函数,负责根据请求的 URL 路径构建(相对)URL。另一种方法是硬编码 <base> href Docs在整体模板中。

另一种选择是获取渲染模板的输出,解析链接并使它们适合。

但重要的是,您需要了解具体请求的 URL 路径以及如何使用您的模板( block )。

关于PHP:Twig:图像的相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com