【发布时间】:2018-08-28 17:16:59
【问题描述】:
我已经研究了将近 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,而实际链接会将您定向到 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 或其他渲染路由不正确(任何尝试使用“路径”或“网址”也会导致类似的空问题)。
所以我的问题是:这些空值来自哪里?如何让 IIS/Drupal 为路由选择合适的基本 url?
【问题讨论】:
标签: php symfony drupal routing drupal-8