2012-08-06 124 views
1

我有一个网站和一个允许用户上传图像到他们的帐户的子域,这两个域名是cakephp应用程序共享相同的CakeLib但不同的应用程序目录。我希望能够从另一个域访问从任一域上传的图像(例如,如果用户进入子域并上传图像,我应该能够从父域和副本域访问相同的图像) 。在两个域之间共享图像文件夹cakephp

请注意,访问这个图像严格地在视图中完成。我会感谢任何建议。

感谢

回答

0
$this->Html->image('http://subdomain.example.com/image.png'); 

喜欢的东西上面? :O,你可以扩展你的助手,以及:

class MyAppHelper extends AppHelper { 
    public $helpers = array('Html'); 

    public function subdImage($path) { 
     return $this->Html->image('http://subdomain.example.com/' . $path); 
    } 
} 

,并从您的视图喜欢叫它:

$this->MyApp->subdImage('image.png'); 
+0

谢谢,但我希望避免对图像进行跨域调用,因为如果我在本地访问图像需要相当长的时间。这就是为什么我没有在第一名中使用这种战术 – sfagade 2012-08-06 10:36:15

+0

你确定这需要更长时间吗?他们都是由同一个客户从同一个主机提供服务。 – RichardAtHome 2012-08-06 15:02:28

+0

@sfagade你是什么意思慢? :o浏览器可以并行加载不同的图像,如果它们来自两个不同的域(子域的处理方式不同),如果有的话,这应该会让你的应用程序更快。 http://developer.yahoo.com/performance/rules.html#js_bottom 'HTTP/1.1规范建议浏览器每个主机名并行下载至少两个组件。如果您从多个主机名提供图像,则可以同时发生两个以上的下载。“# – 2012-08-06 17:51:45

0

只需symlink的文件夹。我会让我的上传路径可配置,并将其指向/ home/www-data/images,并将它链接到/ var/www/app1/webroot/img和/ var/www/app2/webroot/img这两个应用程序。根本不需要代码。 Symlinking也适用于Windows。

+0

谢谢,但我不认为你可以在cpanel共享主机上创建符号链接。你可以吗 – sfagade 2012-08-06 12:35:35