CakePHP 2.x Timthumb路径错误在另一个插件中

时间:2016-04-12 06:13:16

标签: cakephp cakephp-2.0

简介:

我创建了一个名为“administrator”的单独后端插件。在这个插件中,我想使用TimThumb。目录结构如下:

app/Plugin/
     -Administrator 
         - Model
         - View
           - Merchant
             - view.ctp
             .......... 
         - Controller 
           - AdministratorAppController.php (extends AppController)
         ..........

     - Timthumb
         ........

到目前为止我尝试过:

在AdministratorAppController中,我写道:

 public $helpers =  array(......., 'Timthumb.Timthumb');

现在,在视图文件Merchant / view.ctp中,我写了以下内容:

echo $this->Timthumb->imageUrl(
    '/administrator/img/Logo/'.$merchant['Merchant']['logo'], 
    array('width' => 200, 'height' => 100)
);

我的问题:

但这会产生一个网址:

http://xpertsden.com/projects/infinit_dev/web/administrator/timthumb/image?src=%2Fprojects%2Finfinit_dev%2Fweb%2Fapp%2Fwebroot%2Fadministrator%2Fimg%2FLogo%2FINFINIT_570b7d2ea0a82.jpg&q=80&a=c&zc=1&ct=1&w=200&h=100

注意:我的图片位于插件Administrator / webroot / img / Logo / image.png

有人能提出解决方案吗?

任何帮助都将受到高度赞赏。提前谢谢!

1 个答案:

答案 0 :(得分:2)

没有神奇的方法可以做到这一点,但是我使用相同的插件并对其进行了一些修改,以使其更适合我的使用。

请查看https://github.com/voycey/TimthumbPlugin#configuration

上的说明

您可以看到您可以编辑配置变量TimthumbBasePath Configure::write('TimthumbBasePath', '/');

因此,在使用插件之前,您应该可以这样做:

Configure::write('TimthumbBasePath', '/Administrator/webroot/img/Logo/image.png');

或者显示image.png。

所需的路线

然而,在插件目录中拥有资源效率非常低(Please Read here for why) - 您应该尽可能将它们移动到主映像目录中。