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

如何在Yii2中禁用资产缓存?,yii2,Yii2,我正在编写我的第一个Yii2应用程序,我想在开发时禁用资产缓存 我可以使用./config/.php文件禁用缓存吗?1)在的帮助下,可以全局禁用缓存。这方面有特别的选择 您可以使用组件进行如下设置: use Yii; Yii::$app->assetManager->forceCopy = true; 或在应用程序配置中: 'components' => [ 'assetManager' => [ 'class' => 'yii\web\

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

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

1)在的帮助下,可以全局禁用缓存。这方面有特别的选择

您可以使用组件进行如下设置:

use Yii;

Yii::$app->assetManager->forceCopy = true;
或在应用程序配置中:

'components' => [
    'assetManager' => [
        'class' => 'yii\web\AssetManager',
        'forceCopy' => true,          
    ],
],
2)如果要禁用特定的缓存,请使用属性:

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

public $publishOptions = [
    'forceCopy' => true,
];
或者,您可以在属性的帮助下,在选项1中类似地指定此选项。例如:

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

'forceCopy' => YII_DEBUG,

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

中设置的,所以您使用的是YII或Yii2?奇怪。我已经在
'components'
(console.php和web.php)中添加了
'authManager'=>['class'=>'yii\web\AssetManager','forceCopy'=>true,],
,但它仍然缓存在
web/assets
中。在此上下文中禁用意味着文件夹也将显示在assets中,但在加载的每个页面上,其内容都将被强制复制,因此,它将始终包含文件的实际版本。如果你不想这样,看看这个方法。官方文档建议改用资产。可能是
assetManager
而不是
authManager