2013-02-27 30 views
3

我只是用Yii框架构建一个CMS框架。我想将CMS部署到多个域。如何跨多个域重用代码?

/home/root/www/domain1.com 
/home/root/www/domain2.com 
/home/root/www/domain3.com 
/home/root/www/domain4.com 

我想重用的CSS文件和所有文件保护文件夹下,这样一旦我更新的CSS和受保护的文件夹中的文件,所有的域应反映这一变化。

+0

再说了???? – itachi 2013-02-27 10:20:16

回答

3

是的,Yii支持这个。实际上,这是我配置一些网站的方式。

(当然,这个的前提是有你在同一台服务器上的所有网站。但我看到埃文有这一点。这是行不通的翻过服务器。)

首先,它会要求你将您的代码移出web-root并移入文档根目录。请参阅here

其次,它需要你使用Yii AssetsBase。见herethere。我发现资产管理很难配置(但轻而易举)。这是我结束了:

在组件/ Controller.php这样包括以下内容:

/** 
    * @var registers which js, css, images have been published 
    * See: http://www.yiiframework.com/wiki/311/assetmanager-clearing-browser-s-cache-on-site-   update/ 
*/ 

    private $_assetsBase; 

    public function getAssetsBase() 
    { 
      if ($this->_assetsBase === null) { 
       Yii::app()->assetManager->newDirMode = 0755;   
       Yii::app()->assetManager->newFileMode = 0644;   

        $this->_assetsBase = Yii::app()->assetManager->publish(
          Yii::getPathOfAlias('application.assets'), 
          false, 
          -1, 
          defined('YII_DEBUG') && YII_DEBUG 
        ); 
      } 
      return $this->_assetsBase; 
    } 

以上的前提是你的JS,CSS和图像的位置如下:

protected/assets/js/mobiscroll-2.3.custom.min.js 
protected/assets/css/mobiscroll-2.3.custom.min.css 
protected/assets/img/einstein.png 

然后在你的意见,请致电您的资产情况如下:

<?php 
$cs->registerScriptFile($this->assetsBase.'/js/mobiscroll-2.3.1/js/mobiscroll-2.3.custom.min.js'); 
$cs->registerCssFile($this->assetsBase.'/js/mobiscroll-2.3.1/css/mobiscroll-2.3.custom.min.css'); 
?> 

<img src="<?php echo $this->assetsBase ?>/img/einstein.png"> 

最后,你有后对您的JS或CSS进行了更改,您将需要在所有用户的浏览器中强制执行缓存刷新。您可以通过触摸(原始)资产目录来完成此操作。这将迫使Yii重新刷新(发布的)资产目录。随后,您的JS & CSS将在所有用户的浏览器中刷新。做这样的事情:

$command = 'touch /path/to/your/website/protected/assets'; 
exec ($command.' 2>&1', $output , $result ); 
if ($result === 0) { 
    $message = 'Assets have been pointed; a new directory should now be hashed'; 
} else { 
    $message = 'Looks like something went wrong. Assets not pointed?'; 
} // END if 
+0

它很好用。 – 2013-02-28 08:56:23

+0

很高兴听到! – 2013-02-28 09:13:54