Php Silex和Twig:global.request.baseUrl为空
我的URL如下所示: www.MyWebsite.nl/Escape/public/user 因此,在我的细枝模板中,我应该能够对图像使用以下行:Php Silex和Twig:global.request.baseUrl为空,php,twig,silex,base-url,Php,Twig,Silex,Base Url,我的URL如下所示: www.MyWebsite.nl/Escape/public/user 因此,在我的细枝模板中,我应该能够对图像使用以下行: <img src='{{ global.request.baseUrl }}/img/EscapeRoom.png' class="slide"> 但由于某种原因,这是行不通的。。。baseUrl应包含: /逃逸/公众 但它是空的,谁能告诉我为什么以及如何修复它 编辑 当我转到下一页时: www.MyWebsite.nl/Escap
<img src='{{ global.request.baseUrl }}/img/EscapeRoom.png' class="slide">
但由于某种原因,这是行不通的。。。baseUrl应包含:
/逃逸/公众
但它是空的,谁能告诉我为什么以及如何修复它
编辑
当我转到下一页时:
www.MyWebsite.nl/Escape/public/user/login
Css、图像等不再有效,因为路径不再正确(在“public”后面有两个单词)。你知道如何解决这个问题吗?首先,你构建URL的方式是根本错误的。您应该使用Silex中URL生成器生成的绑定到相应路由的绝对URL 注册URL生成器:
$app->register(new Silex\Provider\UrlGeneratorServiceProvider());
$app->get('/', function () {
return 'welcome to the homepage';
})->bind('homepage');
命名您的路线:
$app->register(new Silex\Provider\UrlGeneratorServiceProvider());
$app->get('/', function () {
return 'welcome to the homepage';
})->bind('homepage');
在模板代码中,要获取主页的URL
,请使用
{{ app.url_generator.generate('homepage') }}
此外,您需要在公共目录上使用基于.htaccess的URL重写规则来美化URL。这将帮助您只需编写如下路径,即可映射静态资产
<img src='img/EscapeRoom.png' class="slide">
这要求您使用.htaccess文件重写站点URL,并将公共目录指向宿主提供商中的站点根目录
这已经帮了我很多忙了!谢谢你,但我还有一个问题。请检查我的编辑,很高兴它有用。首先需要将站点根修复为指向public。将其更改为“www.MyWebsite.nl/user/login”。其他一切都会随之而来。必须是这样,因为我也在使用这个领域的另一个项目。其他人提到了AssetServiceProvider,您认为这可能有帮助吗?我已经试过了,但我真的无法让它工作是的,AssetServiceProvider是最好的方法。你一定要明白。阅读此文档将有助于我现在就开始工作!非常感谢你的帮助!非常感谢!!!!