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 目录指向您的托管服务提供商中的站点根目录。
我的 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 目录指向您的托管服务提供商中的站点根目录。