在Windows/IIS上的多个CakePHP webroot之间共享资源?
我有一个CakePHP安装,运行六个不同的网站,每个网站都有自己的webroot。所有的基本代码是相同的(控制器,模型等),只是将CSS,图像,js等分成独立的webroot(app/webroot,app/webroot_second_site,app/webroot_third_site等)在Windows/IIS上的多个CakePHP webroot之间共享资源?
我的问题是:有没有一种方法可以在webroots之间共享公共资源?因此,我们没有六个不同的TinyMCE和jQuery副本,让我们的项目更加混乱,对我更重要的是,我们可以对通用CSS文件进行更改,而不必在六个不同站点上复制/粘贴更改。文件夹?
如果这些站点运行在Linux机器上,我认为它可以相当容易地通过从每个webroot到目录树中较高级别的公共文件夹的符号链接来完成,但我们正在运行Windows Server 2003/IIS 6.有什么建议?
回答:
变成你可以在NTFS文件系统中做目录符号链接。或者至少在实践中足够接近。 “NTFS连接”将为你想要的工作。 抓住一个简单的命令行程序Sysinternals“Junction”程序来创建/删除这些路口。 然后,您可以将所需的任何常用目录链接到单个主目录。 举例来说,如果你有
webroot1/ webroot2/ webroot3/
每个都有自己的 “JS /” 目录下,那么你可以创建
webroot_common/JS/
和然后符号链接...呃,“创建路口”,像这样的新目录:
junction webroot1/js/common webroot_common/js junction webroot2/js/common webroot_common/js
junction webroot3/js/common webroot_common/js
(是的,“连接”程序从Linux向后输入“ln -s”) 然后,您可以将常用文件夹中需要的任何常用js文件(如jQuery)放入该文件夹中,并将任何站点特定的js文件保留“webrootX/JS”。
回答:
您可以制作一个静态服务器。添加一个DNS条目到类似static.yoursite.com。链接到其他网站的这些文件 - 可能只需修改HTML帮助程序,以便它会自动创建指向其他域的链接。
这可以帮助提高性能,因为您可以运行类似nginx的服务来提供这些静态文件。它也将并行化资源检索 - 大多数浏览器将允许2个连接到给定的服务器,所以静态东西与动态东西所需的连接资源竞争。本质上,用户将开始2个连接到您的动态的东西,以及2个连接到静态资源。
工作得很好IME。
回答:
这将工作。您将需要重新定义Windows服务器的目录,但您会理解它。
首先,将您的APP和CAKE目录放在public_html的上方。
/var/www/app /var/www/cake
确保该文件夹饼所有的蛋糕夹在它(蛋糕,销售商等) 指向您的网站他们的public_html目录。
/var/www/html/site1 /var/www/html/site2
webroot内容将位于每个public_html目录中。现在,修改index.php
文件中的每个webroots的指向相同的应用程序:
if (!defined('ROOT')) { define('ROOT', DS.'var'.DS.'www'.DS.'app');
}
if (!defined('APP_DIR')) {
define('APP_DIR',dirname('app'));
}
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
define('CAKE_CORE_INCLUDE_PATH', DS.'var'.DS.'www'.DS.'cake');
}
确保重写已开启,当然。然后它将运行相同的代码,但使用index.php所在的webroot。
以上是 在Windows/IIS上的多个CakePHP webroot之间共享资源? 的全部内容, 来源链接: utcz.com/qa/263026.html