Drupal / Twig / Symfony路由为base_url

时间:2018-08-28 17:16:59

标签: php symfony drupal routing drupal-8

我已经进行了将近2周的研究以寻找答案,最后我决定需要寻求帮助。我对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 ,而实际链接会将您定向到空/主页

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

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

定位标记之间的文本将正确显示为 http://localhost/home ,而实际链接现在将尝试将您定向到 http://localhost/null/home

问题不在于全局变量 $ base_url ,因为当我在Controller中对此进行测试时,$ base_url将自身正确设置为“ localhost”,因此我怀疑Symfony或其他渲染路由错误(尝试使用“ path”或“ url”也导致了类似的null问题)。

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

1 个答案:

答案 0 :(得分:0)

您可以使用此url('<front>')

{{ url('<front>') }}{{item.url}}