编辑: 削减这个简短:有没有办法调用$ kernel-> getRootDir();从枝条延伸?或者也许来自DI容器?
原始问题:
我尝试使用Imagine在服务器上缩放图像。一切正常,因为我不尝试通过命令行触发渲染: 在这种情况下,它看起来有一个错误的路径设置 - 我收到一个错误:
[Twig_Error_Runtime]
在渲染模板期间抛出了异常 (“文件../web/documents/4f59ef3f76e74_test3.jpg不存在”)in 在第72行“....:detail.html.twig”。
我正在使用我自己写的树枝标签:
public function thumbnail($path,$width,$maxHeight=0,$alt="",$absolute=false){
/* @var $imagine \Imagine\Gd\Imagine */
$imagine = $this->container->get('imagine');
//$box = new \Imagine\Image\Box($width, $height);
/* @var $image \Imagine\Image\ImageInterface */
$image = $imagine->open("../web/".$path);
...
我也试过这个(当我通过浏览器请求渲染模板时都有效)
$image = $imagine->open($path);
$ path设置为“documents / 4f59ef3f76e74_test3.jpg” “documents /”是“web”的子目录
有什么想法吗?
答案 0 :(得分:10)
哈 - 找到了!这将检索Web文件夹的绝对系统文件路径:
$webRoot = $this->container->get('kernel')->getRootDir()."/../web";