我在相对路径Web应用程序中使用Slim及其routes参数。 当我使用html视图时,我应该根据路径更改资源相对路径。例如:
$app = new \Slim\Slim();
$app->get('/books/:one/:two', function ($one, $two) {
$app->render("image.html");
});
有了这个观点:
<html>
<body>
<img src="./relativepath/img.jpg" />
</body>
</html>
显然,客户端找不到图像,而不是我应该改变路径:
<img src="../../relativepath/img.jpg" />
我的问题是: Slim中有没有办法自动执行此操作?为此存在任何构建?
我想用一个变量来获取路由的深度,然后计算路径前置字符串。例如,阅读多少&#34; /&#34;在请求网址中有...但是Slim也有通配符,因此很难获得深度:
$app->get('/hello/:name+', function ($name) {
// Do something
});
请注意,遗憾的是我无法使用绝对路径来获取资源。
答案 0 :(得分:0)
这是我发现的:
$urlfolder=substr_count($app->request->getResourceUri(), '/')-1;
$urlprepend="";
if($urlfolder>0){
for($i=0;$i<$urlfolder;$i++) $urlprepend.="../";
$app->config('urlprepend',$urlprepend);
}
比我在html视图中的每个相对路径中使用变量$urlprepend
或$app->config("urlprepend")
。