Yii2:将CSS定位在<body>底部

3
Yii2默认将JS文件放置在页面底部的<body>标签之前,可以通过public $jsOptions = ['position' => \yii\web\View::POS_*];进行更改设置。但是如何让CSS也位于页面底部排在JS脚本之前呢?类似于这样:public $cssOptions = ['position' => \yii\web\View::POS_END];这种方法不可行。这是因为Google PageSpeed推荐网站进行优化,需要CSS位于页面底部。
编辑:看起来Yii2不支持此功能,但可能有一些技巧或扩展程序可以保持AssetBundle的逻辑,并提供选择所需CSS位置的能力。

在底部手动添加CSS:<link rel="stylesheet" type="text/css" href="<?php echo Yii::$app->request->baseUrl; ?>/css/filename.css"> - Yasin Patel
但是我不能使用AssetBundles来处理这些CSS... - cronfy
为什么要这样做?CSS需要在head中,而不是在闭合的body元素之前。您可以使用style-scoped,但它并不真正被支持 - Vucko
我需要根据PageSpeed建议优化CSS交付,具体请参考:https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery(英文版本中有一些JS,但其他语言的翻译提供了更简单的解决方案:只需在```<html>后面放置<link>```即可)。 - cronfy
2个回答

0
据我所知,目前无法使用$cssOptionsregisterCssFile()实现。 您需要在所需位置手动添加到布局中。

0
在 Yii 2 中,如果您注册 CSS,则它将仅添加在 head 标签中。您无法将其添加到 body 标签下方。如果您手动添加,则可能存在一个问题。您安装的第三方扩展将在 head 中注册其 CSS。因此,我建议您在 head 部分添加 CSS :)

感谢。很长时间我都没找到在Yii中如何实现这个功能。看起来如果需要将CSS文件拆分为关键路径和其他部分,则需要使用Yii之外的其他工具/方法。 - cronfy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接