如何在 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
我想覆盖现有资产的 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