Как отключить кеширование ресурсов в Yii2?

Я пишу свое первое приложение Yii2, и я хочу отключить кэширование ресурсов, пока я разрабатываю.

Можно ли отключить кеширование с помощью файлов./config/.php?

Ответ 1

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,
];

В качестве альтернативы вы можете указать это как в опции 1 с помощью свойства bundles. Например:

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

Но это:

'forceCopy' => YII_DEBUG,

является более гибким, поскольку он отключает кеширование этого набора ресурсов только в режиме отладки, но позволяет на рабочем сервере. YII_DEBUG устанавливается в web/index.php.