Slim Framework Route参数和相对资源路径

时间:2015-02-19 12:09:51

标签: url-routing relative-path slim

我在相对路径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
});

请注意,遗憾的是我无法使用绝对路径来获取资源。

1 个答案:

答案 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")