jhancock / yii2-version-assetmgr

此包已废弃,不再维护。没有建议的替代包。

基于应用程序版本而不是mtime进行哈希的Yii2资产管理器。适用于负载均衡网站。

1.0.0 2014-08-14 04:28 UTC

This package is not auto-updated.

Last update: 2022-04-11 15:30:10 UTC


README

一个为Yii2框架提供的即插即用AssetManager。Yii的默认AssetManager基于路径 + Yii版本 + 文件修改时间对资源进行哈希,但如果您的网站由多个Web服务器通过负载均衡器提供服务,并且文件mtime不同,这可能导致从不同的路径提供资源。

为了解决这个问题,VersionAssetManager基于路径 + Yii版本 + 应用程序版本进行哈希。应用程序版本从配置文件中params数组的version键读取

'params' => [
    'version' => '1.0.0'
],

安装

安装此扩展的首选方式是通过composer

运行以下命令之一

php composer.phar require --prefer-dist jhancock/yii2-version-assetmgr "*"

或添加

"jhancock/yii2-version-assetmgr": "*"

到您的composer.json文件的require部分。

配置

通过添加以下组件配置来配置您的应用程序使用VersionAssetManager

'assetManager' => [
    'class' => 'jhancock\VersionAssetMgr\VersionAssetManager',
],

然后,在发布您的应用程序时,您应该在params数组中设置一个version参数。

在开发环境中,您可以在配置中省略设置version键,将其设置为Development,或完全省略它,它将默认为Development。当版本为Development时,我们将使用path + Yii版本 + time()进行哈希,以确保在开发环境中始终清除缓存。这意味着每次页面加载都会在您的assets目录下创建新的文件夹并复制大量文件。因此,建议您在assetManager组件配置中将linkAssets设置为true,如下所示

'assetManager' => [
    'class' => 'jhancock\VersionAssetMgr\VersionAssetManager',
    'linkAssets' => true,
],