2016-03-04 42 views
1

我正在Yii 1.2框架項目上工作。 我已經使用下面的代碼創建資產網址。資產URL不能正常工作,因爲Yii負載均衡器

$this->_assetsUrl = Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('aessessment.assets')); 

其中aessessment是模塊的名字。

對於提取資產數據我已經使用了下面的代碼。

$stylesheet = file_get_contents($this->module->assetsUrl . '/pdfcss/style.css'); 

此代碼是在我的本地系統完美地工作,也是我的開發服務器上。

對於生產我有管理命名像研究1研究2 usign負載平衡器2臺服務器。

所以如果用戶打開URL study.mywebsite.com,然後負載均衡器發送請求到study1或study2服務器。

我在這裏遇到了問題。 file_get_contents在這裏給我一個空的結果。

我試圖插入css文件到視圖使用資產URL使用下面的代碼。

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

它也不適用於study.mysite.com網址。

如果我study1.mysite.comstudy2.mysite.com試圖 URL,那麼所有的事情做工精細。

但我無法在URL上獲得成功study.mysite.com

我在網上搜索多個答案,但沒有得到成功。

任何幫助將不勝感激。

在此先感謝!

回答

1

資產通過後端服務器生成並放入其文件系統時,通常會出現問題。

修復它的最簡單方法 - 更改study.mysite.com上assets文件夾的web服務器設置。它應該嘗試在第一臺服務器上找到具體的資產文件,並在失敗的情況下嘗試在第二臺服務器上找到該文件。但是這種方法對於3,4,5等服務器來說是不好的。

將資產從兩臺服務器發佈到一個可用於study.mysite.com的網絡服務器的地方會更好。

我畫一幅畫與此simplect模式: enter image description here

+0

非常感謝你對你的迴應。我也試過這個想法在一個共同的虛擬目錄中生成。 我已經將資產mangager基本路徑更改爲配置文件,就像這樣。 'assetManager'=> array('basePath'=> realpath('\\ SERVER IP \ FOLDER PATH \ ASSETS FOLDER'),'baseUrl'=>'/ resources_nt/assets /'),但它不起作用。你能更多地指導我嗎? –

+0

我不記得,但標準的assetManager不能保存其他服務器上的文件。曾幾何時,我從標準Yii類繼承我自己的assetManager類並重寫發佈方法。我的方法在我們分發靜態文件的小型CDN上傳文件。 –