如何在 Yii2 中进行选择性资产重定义?

How to make selective asset redefinition in Yii2?

我想覆盖现有资产的 css 代码,例如“kartik\form\ActiveFormAsset”。如果我按照官方指南,我会这样做:

'components' => [
    'assetManager' => [
        'bundles' => [
            'kartik\form\ActiveFormAsset' => [
                'sourcePath' => null,   // do not publish the bundle
                'basePath' => '@webroot',
                'baseUrl' => '@web',
                'css' => [
                    '/custom.css',
                ]
            ],
        ],
    ],
],

但是它会自动更改一个 js 文件的路径,我想保持最新并且不做任何更改。

那么,如何只为 css 而不是 js 覆盖资产?

如果您不需要资产分配或者您想要覆盖资产分配,您可以尝试在您的视图中使用注册脚本。

$this->registerCssFile("@web/css/themes/black-and-white.css", [
  'depends' => [\yii\bootstrap\BootstrapAsset::class],
   'media' => 'print',
], 'css-print-theme');

请参阅 yii2 指南和参考资料

https://www.yiiframework.com/doc/guide/2.0/en/output-client-scripts https://www.yiiframework.com/doc/api/2.0/yii-web-view