每次我在infoweb\menu\module\assets中更新我的css或js文件时,我都要清空后端\ web\assets文件夹
有没有办法自动清除资产缓存?
Rub*_*ben 15
在您的视图中添加此内容:
use vendor\myVendorName\myPackageName\assets\AppAsset;
AppAsset::register($this);
Run Code Online (Sandbox Code Playgroud)
在您的配置中添加:
'components' => [
'assetManager' => [
'linkAssets' => true,
],
]
Run Code Online (Sandbox Code Playgroud)
清空资产文件夹,并刷新,完成
Den*_*dov 15
还有其他财产
if (YII_ENV_DEV) {
...;
...;
...;
$config['components']['assetManager']['forceCopy'] = true;
...;
...;
}
Run Code Online (Sandbox Code Playgroud)
即使之前发布过,也要发布文件
Bra*_*Guy 10
如果您的环境是生产我建议使用缓存清除:
return [
// ...
'components' => [
'assetManager' => [
'appendTimestamp' => true,
],
],
];
Run Code Online (Sandbox Code Playgroud)
有关资产的更多信息,请阅读Assets Yii2文档.
如果您正在开发自己的插件,则可以强制每个捆绑包发布资产(注意:应该设置$ sourcePath)
<?php
namespace app\components\forms\redactorAssets;
use yii\web\AssetBundle;
class RedactorCutAsset extends AssetBundle {
public $sourcePath = '@app/components/forms/redactorAssets/assets';
public $js = [
'cut.js',
];
public $publishOptions = [
'forceCopy'=>true,
];
}
Run Code Online (Sandbox Code Playgroud)