【问题标题】:How to rename yii\web\YiiAsset filename如何重命名 yii\web\YiiAsset 文件名
【发布时间】:2021-01-10 10:17:47
【问题描述】:

我正在使用 Yii2 框架,我不知道如何从 yii\web\YiiAsset 重命名文件名。 yii 自动在web/assets 文件夹中生成这个文件。有可能吗?

【问题讨论】:

    标签: yii2 assets


    【解决方案1】:

    你可以覆盖yii\web\AssetManager::hash($path)

    class MyAssetManager extends yii\web\AssetManager{
        protected function ($path) {
            return hash('md4', $path);
        }
    }
    

    另外,你可以设置$hashCallbackread 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

    【讨论】:

    • 抱歉,我的问题是将文件名(yii.js、yii.validation.js 和 yii.activeform.js)重命名为例如(yii.js 为 framework.js),而不是文件夹名称
    猜你喜欢
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    相关资源
    最近更新 更多