Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 由于Yii中的负载平衡器,资源URL不工作_Php_Yii_Load Balancing_Assets - Fatal编程技术网

Php 由于Yii中的负载平衡器,资源URL不工作

Php 由于Yii中的负载平衡器,资源URL不工作,php,yii,load-balancing,assets,Php,Yii,Load Balancing,Assets,我正在从事Yii 1.2框架项目。 我已经使用下面的代码创建了一个资产URL $this->_assetsUrl = Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('aessessment.assets')); 其中,aessessment是模块名称 对于获取资产数据,我使用了下面的代码 $stylesheet = file_get_contents($this->module->assets

我正在从事Yii 1.2框架项目。 我已经使用下面的代码创建了一个资产URL

$this->_assetsUrl = Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('aessessment.assets'));
其中,aessessment是模块名称

对于获取资产数据,我使用了下面的代码

$stylesheet = file_get_contents($this->module->assetsUrl . '/pdfcss/style.css');
<link href="<?php echo $this->module->assetsUrl; ?>/gcicss/css/style.css" rel="stylesheet" type="text/css" />
这段代码在我的本地系统和我的开发服务器上都能完美地工作。

对于生产,我使用GN负载平衡器管理两个名为study1study2的服务器

所以,若用户打开URL study.mywebsite.com,则负载平衡器会将请求发送到study1或study2服务器

我这里有问题。file\u get\u contents在这里给我一个空结果。

我已经尝试使用下面的代码,使用资产URL将css文件插入视图

$stylesheet = file_get_contents($this->module->assetsUrl . '/pdfcss/style.css');
<link href="<?php echo $this->module->assetsUrl; ?>/gcicss/css/style.css" rel="stylesheet" type="text/css" />

当资产由后端服务器生成并放入其文件系统时,这是一个常见的问题

最简单的修复方法是更改study.mysite.com上资产文件夹的Web服务器设置。它应该尝试在第一台服务器上查找具体的资产文件,如果失败,则尝试在第二台服务器上查找此文件。但这种方法对3、4、5等服务器的扩展性很差

最好将两台服务器上的资产发布到一个可供study.mysite.com网站使用的位置

我用这个简单的模式画了一幅图:

非常感谢您的回复。我还尝试了在一个公共虚拟目录中生成。我已将assets Manager基本路径更改为如下所示的配置文件assetManager'=>array('basePath'=>realpath('\\SERVER IP\FOLDER PATH\ASSETS FOLDER'),'baseUrl'=>'/resources\u nt/ASSETS/),但它不工作。您能给我更多的指导吗?我不记得了,但standard assetManager不能在其他服务器上保存文件。从前,我从标准Yii类继承了自己的assetManager类,并重写了发布方法。我的方法将文件上传到我们的小型CDN上,我们从中分发静态文件。