Drupal / Twig / Symfony Routing为base_url返回“null”

问题描述 投票:0回答:1

我已经研究了将近两个星期的答案,并最终决定我需要寻求帮助。我对PHP / Drupal很不熟悉,但继承了这样一个项目来更新和维护。该项目在Drupal 8.3.7上运行,并由IIS 6.2托管。

由于某些未知原因,我的html.twig文件中的链接返回“null”base_url。所以例如......

<a href="/home"> ... </a>

将链接到“null / home”...经过大量的黑客攻击并试图弄清楚我是否可以手动设置$ base_url(不是最佳实践,我知道,但我只是需要查看是否可能),我发现了两种奇特的行为:

A.如果在关联的控制器中我创建了一个变量$ temp_base_url并硬编码值“localhost”并尝试将以下内容放入我的html.twig文件中(其中item.url =“/ home”)...

<a href="http://{{temp_base_url}}{{item.url}}">http://{{temp_base_url}}{{item.url}}</a>

锚标记之间的文本将正确显示为http://localhost/home,而实际链接将指向null / home。

B.另一方面,如果我将$ temp_base_url指定为等于“http://localhost”并输入以下代码......

<a href="{{temp_base_url}}{{item.url}}">{{temp_base_url}}{{item.url}}</a>

锚标记之间的文本(aga)将正确显示为http://localhost/home,而实际链接现在将尝试将您引导至http://localhost/null/home

问题不在于全局变量$ base_url,因为当我在Controller中测试这个时,$ base_url正确地将自己设置为“localhost”,所以我怀疑Symfony或其他东西错误地渲染路径(任何尝试使用'path'或'url'也导致类似的空问题)。

所以我的问题是:这些空值来自哪里?如何让IIS / Drupal选择适当的基本URL进行路由?

php symfony drupal routing drupal-8
1个回答
0
投票

你可以使用这个url('<front>')

{{ url('<front>') }}{{item.url}}
© www.soinside.com 2019 - 2024. All rights reserved.