问题描述
我使用的是 Yii2 框架,我不知道如何从 yii\web\YiiAsset
重命名文件名。
yii 自动在 web/assets
文件夹中生成此文件。有可能吗?
解决方法
您可以覆盖 yii\web\AssetManager::hash($path)
class MyAssetManager extends yii\web\AssetManager{
protected function ($path) {
return hash('md4',$path);
}
}
此外,您还可以设置 $hashCallback
、read this
您可以在 aftercopy 上重命名资产文件:
'assetManager' => [
'forceCopy' => true,'afterCopy' => function ($from,$to) {
if (basename($from) == 'site.css') {
rename($to,dirname($to) . DIRECTORY_SEPARATOR . 'newname.css');
}
},],
或使用“mysite.css”代替“site.css”使用assetMap:
'assetManager' => [
'assetMap' => [
'site.css' => 'mysite.css',
如果以上都不能解决您的问题,您将不得不覆盖 AssetManager->publishDirectory($src,$options)
,它最终会默认调用 FileHelper::copyDirectory
。