我正在从事 Yii 1.2 框架项目。 我使用以下代码创建了一个 Assets URL。
$this->_assetsUrl = Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('aessessment.assets'));
其中 aessessment 是模块名称。
为了获取 Assets 数据,我使用了以下代码。
$stylesheet = file_get_contents($this->module->assetsUrl . '/pdfcss/style.css');
这段代码在我的本地系统和我的开发服务器上都能完美运行。
对于生产,我管理了两台名为 study1 和 study2 的服务器,并使用负载均衡器。
因此,如果用户打开 URL study.mywebsite.com,则负载均衡器将请求发送到 study1 或 study2 服务器。
我在这里遇到了问题。 file_get_contents 在这里给我一个空的结果。
我尝试使用以下代码使用 Assets URL 将 css 文件插入到 View 中。
<link href="<?php echo $this->module->assetsUrl; ?>/gcicss/css/style.css" rel="stylesheet" type="text/css" />
它也不适用于 study.mysite.com URL。
如果我尝试使用 study1.mysite.com 或 study2.mysite.com URL,那么一切正常。
但我无法在 URL study.mysite.com 上获得成功。
我在网上搜索了多个答案,但都没有成功。
非常感谢任何帮助。
提前致谢!
最佳答案
Assets 由后端服务器生成并放入其文件系统时,通常会出现问题。
修复它的最简单方法 - 更改 study.mysite.com 上 Assets 文件夹的网络服务器设置。它应该尝试在第一台服务器上找到具体的 Assets 文件,并在失败的情况下尝试在第二台服务器上找到该文件。但是这种方法在 3、4、5 等服务器上的规模不佳。
最好将两个服务器的资源发布到一个地方,供 study.mysite.com 的网络服务器使用。
关于php - 由于 Yii 中的负载均衡器, Assets URL 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35793001/