Yii 生成靜態資源資料夾路經的問題

2021-06-16 18:18:46 字數 829 閱讀 4331

先看下cassetmanager裡面的兩個方法

public function getpublishedurl($path,$hashbyname=false)

else

return false;

}protected function hash($path)

先說下問題:  專案部署多個伺服器時,生成的靜態資源資料夾名字不同,導致靜態資源路徑不一致,有些資源訪問不到。

yii的作者們也討論過這個問題,也給出了幾個方案。可以自行搜尋。

下面簡單說下我們的處理辦法吧(因為我總覺得用 filemtime 這個方法比較怪異):

首先來說下 hash 這個方法,這個時用了 引數 $path 和 yii 的 version 來生成的, getpublishurl 裡面在傳參的時候用了  filemtime 這個函式,這個時獲得檔案的修改時間,如果不是同時部署專案,那麼這個值肯定時不同的,所以最後的 hash 也是不同的,我的看法時直接去掉這個 filetime,下面說說為什麼去掉:

(1)hash計算時,已經參考了 yii 的版本,如果版本有變化也就是公升級以後,這個 hash 自然就變化了。

(2)因為使用了 filemtime 那麼發布多個伺服器時,檔案有時候很難保持修改時間一致,除了一些工具。如果直接 git 或者 svn 就有問題了。

(3)一般不會對原有資源**例如 yii.cgridview.js 這類的修改,就像不會對 cassetmanager 這個類的修改一樣。

所以我覺得沒必要使用 filemtime 函式。

但是,修改 framework 的行為,總是不被認同的。 哈哈哈哈!!!

關於xcode裡資源資料夾管理

都知道xcode裡的新建的乙個分組資料夾 黃色的 並不是真正在目錄下就有乙個這樣的資料夾,裡面的檔案還是放在乙個目錄下。然而有時候專案要用到的資源很多,有時候還會有重名的情況,這樣如果放在分組資料夾裡就不好了。為了方便管理我們有必要在目錄下新建一些真實存在的資料夾來存放這些資源,然後把這個資料夾加入...

Android螢幕適配(命名不同資源資料夾wdp)

1 dpi dot per inch 即每英吋畫素,所有的android裝置都會被分成120 low 160 medium 240 high 320 xhigh 四種,後來隨著市場上android裝置越來越多,google官方又增加了213 added in api level13 480 adde...

Android國際化資源 資料夾命名規範

android多國語言資料夾檔案彙總如下 中文 中國 values zh rcn 中文 台灣 values zh rtw 中文 香港 values zh rhk 英語 美國 values en rus 英語 英國 values en rgb 英文 澳大利亞 values en rau 英文 加拿大 ...