Yii2 - 使用树枝全局注册资产



我的siteindex.twig文件中的前两行有以下内容。

{{ use('app/assets/AppAsset') }}
{{ register_app_asset() }}

我的问题是是否可以在config/web.php文件中执行此操作?

例如,我可以在layout/main.twig中执行{{ use('yii/bootstrap') }},或者将以下代码添加到我的config/web.php文件中。

// setting up twig
'view' => [
    'class' => 'yiiwebView',
    'renderers' => [
        'twig' => [
            'class' => 'yiitwigViewRenderer',
                ...
                'uses' => [ 'yiibootstrap' ],
        ],
    ],
],

所以我想知道是否也能够做一些事情来注册资产。

如果要

自动注册此资产,则可以在每次布局渲染之前使用beginPage事件调用appassetsAppAsset::register()

但你可能不应该这样做。如果资产特定于您的布局,则应在布局级别注册(例如在 layouts/main.twig 中(。如果您需要在应用中使用不同的布局(针对不同的主题或特定于第三方模块的布局,如调试模块(,那么在视图级别全局注册它会给您带来很多问题。通常你只有一个主文件用于布局,所以你需要放置

{{ use('app/assets/AppAsset') }}
{{ register_app_asset() }}

仅在一个文件中 ( layouts/main.twig (。即使您有多个布局,最好在每个文件中重复此操作,而不是创建一些神奇的解决方案来隐式执行此操作。

最新更新