如何在Yii2中禁用资产缓存?

时间:2015-01-20 07:43:31

标签: yii2

我正在编写我的第一个Yii2应用程序,我想在我正在开发时禁用资产缓存。

我可以使用./config/ .php文件禁用缓存吗?

1 个答案:

答案 0 :(得分:21)

1)AssetMananer的帮助下,全球范围内可以实现这一目标。此处有特殊选项$forceCopy

您可以使用组件

进行设置
use Yii;

Yii::$app->assetManager->forceCopy = true;

或者在应用程序配置中:

'components' => [
    'assetManager' => [
        'class' => 'yii\web\AssetManager',
        'forceCopy' => true,          
    ],
],

2)如果您想要在特定AssetBundle中禁用缓存,请使用$publishOptions属性:

public $sourcePath = '...' // In order to use $publishOptions you should specify correct source path.

public $publishOptions = [
    'forceCopy' => true,
];

或者,您可以在bundles属性的帮助下在选项1中指定此项。例如:

'components' => [
    'assetManager' => [
        'class' => 'yii\web\AssetManager',
        'forceCopy' => true,          
        'bundles' => [
            'yii\bootstrap\BootstrapAsset' => [
                'forceCopy' => true,
            ],
        ],
    ],
],

但是这个:

'forceCopy' => YII_DEBUG,

更灵活,因为它仅在调试模式下禁用此资产包缓存,但允许在生产服务器上使用。 YII_DEBUG中设置了web/index.php