我的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
(。即使您有多个布局,最好在每个文件中重复此操作,而不是创建一些神奇的解决方案来隐式执行此操作。