Windows上具有绝对路径的Filesystemloader

发布于 2025-02-11 16:25:27 字数 1002 浏览 1 评论 0原文

我正在开发一个使用木材/树枝进行WordPress的网站。我想在Windows计算机上渲染一个具有绝对路径的模板(与Local一起使用)。

$path = "C:\Users\jonas\Local Sites\mywebsite\app\public/wp-content/themes/my-theme/components/example/index.twig";

$context = Timber::context();
Timber::render($template, $context);

Timber :: Render()返回false,并且未渲染模板,因为twig \ filesystemloader-> exists()函数返回false。该功能在Timber \ Loader类中调用。

在Mac上工作正常!如果我使用的是“/components/example/index.twig”之类的相对路径,它也可以正常工作。

Twig的FileSystemloader似乎无法与Windows机器上的绝对路径一起使用。

是否可以使Twig \ Filesystemloader也可以处理绝对路径?我通过PHP Glob函数获得了绝对路径:

$components = glob(__DIR__ . "/components/*", GLOB_ONLYDIR);
foreach($components as $component) {
    // $component= "C:\Users\jonas\Local Sites\mywebsite\app\public/wp-content/themes/my-theme/components/example";
    $component = $component . "/index.twig";
    $context = Timber::context();
    Timber::render($component, $context);
}

I'm developing a website using Timber/Twig for Wordpress. I would like to render a template with an absolute path on my windows machine (working with Local).

$path = "C:\Users\jonas\Local Sites\mywebsite\app\public/wp-content/themes/my-theme/components/example/index.twig";

$context = Timber::context();
Timber::render($template, $context);

Timber::render() return false and the template isn't rendered, because the Twig\FilesystemLoader->exists() function return false. The functions is called in the Timber\Loader class.

On Mac it's working fine! If I'm using a relative path like "/components/example/index.twig" it's working fine as well.

It seems that Twig's FilesystemLoader does not work with absolute paths on Windows machines.

Is there a way to make Twig\FilesystemLoader handle absolute paths as well? I get the absolute path via a PHP glob function:

$components = glob(__DIR__ . "/components/*", GLOB_ONLYDIR);
foreach($components as $component) {
    // $component= "C:\Users\jonas\Local Sites\mywebsite\app\public/wp-content/themes/my-theme/components/example";
    $component = $component . "/index.twig";
    $context = Timber::context();
    Timber::render($component, $context);
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文