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

CakePHP 2.x Timthumb path error within another plugin

简介:

我创建了一个单独的后端插件,名为 "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)
);

我的问题:

但这会生成 url:

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

有人能想出解决办法吗?

如有任何帮助,我们将不胜感激。提前致谢!

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

请在 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) - 您应该尽可能将它们移动到主图像目录中。