我正在编写我的第一个Yii2应用程序,我想在我正在开发时禁用资产缓存。
我可以使用./config/ .php文件禁用缓存吗?
答案 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
。