Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Silex和Twig:global.request.baseUrl为空_Php_Twig_Silex_Base Url - Fatal编程技术网

Php Silex和Twig:global.request.baseUrl为空

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

我的URL如下所示:

www.MyWebsite.nl/Escape/public/user

因此,在我的细枝模板中,我应该能够对图像使用以下行:

<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是最好的方法。你一定要明白。阅读此文档将有助于我现在就开始工作!非常感谢你的帮助!非常感谢!!!!