我的site\index.twig
文件中有前两行。
{{ use('app/assets/AppAsset') }}
{{ register_app_asset() }}
我的疑问是,是否可以在config/web.php
文件中执行此操作?
例如,我可以在{{ use('yii/bootstrap') }}
中执行layout/main.twig
,或者将以下代码添加到我的config/web.php
文件中。
// setting up twig
'view' => [
'class' => 'yii\web\View',
'renderers' => [
'twig' => [
'class' => 'yii\twig\ViewRenderer',
...
'uses' => [ 'yii\bootstrap' ],
],
],
],
所以我想知道是否还可以做些什么来注册资产。
答案 0 :(得分:0)
如果您想自动注册此资产,可以在每次布局渲染之前使用beginPage
event来调用app\assets\AppAsset::register()
。
但你可能不应该这样做。如果资产特定于您的布局,则应在布局级别注册(例如,在layouts/main.twig
中)。如果您需要在应用中使用不同的布局(针对第三方模块的不同主题或布局,如调试模块),则在View级别全局注册它会给您带来很多问题。通常,您只有一个主文件用于布局,因此您需要放置
{{ use('app/assets/AppAsset') }}
{{ register_app_asset() }}
仅限于一个文件(layouts/main.twig
)。即使您有多个布局,最好在每个文件中重复此操作,而不是创建一些神奇的解决方案来隐式执行此操作。