为什么silverstripe 4 base_标记返回http而不是https?

为什么silverstripe 4 base_标记返回http而不是https?,silverstripe,silverstripe-4,Silverstripe,Silverstripe 4,我正在使用Silverstripe 4。我的模板SS文件上有base_标记。正在使用https访问该网站。例如: 当我检查查看器代码时,使用Director::absoluteBaseURL()检索base_标记 当我调用Director::absoluteBaseURL()时,它返回“” 但是在我的base_标签上,它总是出现 我正在使用Heroku托管我的应用程序(如果此信息有任何帮助) 提前感谢。对于所有SS4项目,我不得不在{root folder}/app/_config.php中插

我正在使用Silverstripe 4。我的模板SS文件上有base_标记。正在使用https访问该网站。例如:

当我检查查看器代码时,使用Director::absoluteBaseURL()检索base_标记

当我调用Director::absoluteBaseURL()时,它返回“”

但是在我的base_标签上,它总是出现

我正在使用Heroku托管我的应用程序(如果此信息有任何帮助)


提前感谢。

对于所有SS4项目,我不得不在
{root folder}/app/_config.php
中插入以下内容:

// Hack to allow SS to insert the correct base url as defined by environmental variable 'SS_BASE_URL'.
$url = getenv('SS_BASE_URL');

if (isset($url) && $url != '') {
    Director::config()->set('alternate_base_url', (rtrim($url, '/') . '/'));
    Director::config()->set('cookie_path', '/');
}
并确保根文件夹中的
.env
已声明
SS\u BASE\u URL

SS_BASE_URL="https://www.***.com"
如果您正在使用Docker(Docker Compose),请添加:


到你的docker compose文件。

你在
.env
文件中定义了SS_BASE_URL吗?是的,我用https定义了SS_BASE_URL。
  environment:
    - SS_BASE_URL=https://www.***.com