php - 由于 Yii 中的负载均衡器, Assets URL 不工作

标签 php yii load-balancing assets

我正在从事 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');

这段代码在我的本地系统和我的开发服务器上都能完美运行。

对于生产,我管理了两台名为 study1study2 的服务器,并使用负载均衡器。

因此,如果用户打开 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.comstudy2.mysite.com URL,那么一切正常。

但我无法在 URL study.mysite.com 上获得成功。

我在网上搜索了多个答案,但都没有成功。

非常感谢任何帮助。

提前致谢!

最佳答案

Assets 由后端服务器生成并放入其文件系统时,通常会出现问题。

修复它的最简单方法 - 更改 study.mysite.com 上 Assets 文件夹的网络服务器设置。它应该尝试在第一台服务器上找到具体的 Assets 文件,并在失败的情况下尝试在第二台服务器上找到该文件。但是这种方法在 3、4、5 等服务器上的规模不佳。

最好将两个服务器的资源发布到一个地方,供 study.mysite.com 的网络服务器使用。

我用这个简单模式画了一幅图: enter image description here

关于php - 由于 Yii 中的负载均衡器, Assets URL 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35793001/

相关文章:

azure - 在 Azure 中限制流量而不扩展?

php - MySQL 查找时间片中的日期间隙

php - 如何使用 "tail"将字符串转换为 float ?

php - MySQL PHP 抓取与查询不相关的行

仅当存在另一个字段时才进行 yii 验证

javascript - 是否可以在 AJAX 请求中放入两个 URL?

symfony - 持续部署和数据库迁移

php - 将本地主机 PHP 转换为 PDF

ssl - 将 Comodo SSL 与 AWS 证书链结合使用

redirect - SSL 使用 HAproxy 卸载/重定向特定 URL?