Silex 和 Twig:global.request.baseUrl 为空

Silex and Twig: global.request.baseUrl is empty

我的 URL 看起来像这样:

www.MyWebsite.nl/Escape/public/user

所以在我的树枝模板中,我应该可以使用以下行作为图像:

<img src='{{ global.request.baseUrl }}/img/EscapeRoom.png' class="slide">

但由于某些原因不起作用...baseUrl 应包含:

/Escape/public

但是它是空的,谁能告诉我为什么以及如何修复它?

编辑

当我进入以下页面时:

www.MyWebsite.nl/Escape/public/user/login

Css、图像等不再有效,因为路径不再正确('public' 后的两个词)。你知道如何解决这个问题吗?

首先,您构建 URL 的方式从根本上是错误的。您应该使用 Silex 中的 URL Generator 生成的绝对 URLs 绑定到相应的路由。

注册URL生成器:

$app->register(new Silex\Provider\UrlGeneratorServiceProvider());

为您的路线命名:

$app->get('/', function () {
return 'welcome to the homepage';
})->bind('homepage');

在您的模板代码中,要获取 URL of the homepage,请使用

{{ app.url_generator.generate('homepage') }}

此外,您需要在 public 目录上使用基于 .htaccess 的 URL 重写规则来美化 URL。这将帮助您简单地通过编写如下路径来映射您的静态资产。

<img src='img/EscapeRoom.png' class="slide">

这需要您使用 .htaccess 文件重写您的站点 URL 并将 public 目录指向您的托管服务提供商中的站点根目录。

Silex - URL Generator