谷歌PageSpeed经常向optimize CSS delivery建议。我突然想到,像这样内联所有的CSS会减少网络往返:
<style type="text/css">
@{
var bootstrap = File.ReadAllText(Server.MapPath("bootstrap.min.css"));
var bootstrapTheme = File.ReadAllText(Server.MapPath("theme.min.css"));
var fontAwesome = File.ReadAllText(Server.MapPath("font-awesome.min.css"));
var bigfont = File.ReadAllText(Server.MapPath("bigfont.min.css"));
var bigfontPrint = File.ReadAllText(Server.MapPath("bigfont-print.min.css"));
}
@Html.Raw(bootstrap)
@Html.Raw(bootstrapTheme)
@Html.Raw(fontAwesome)
@Html.Raw(bigfont)
@Html.Raw(bigfontPrint)
</style>
对于页面加载缓慢的问题,这似乎是一个合理的解决方案,并将我的PageSpeed分数从88分提高到95分。
暂时把代码风格放在一边,有什么技术原因,如果有的话,为什么不以这种方式内联所有的CSS?
发布于 2015-09-28 18:42:08
这太长了,无法放入评论中。在我工作的地方,我们使用CSS指令(特别是style-src
)来明确禁止使用内联Content Security Policy。在这种情况下不使用内联CSS的基本原理是将动态创建的页面的CSS注入风险降至最低。OWASP有关于这个主题的详细信息,包括利用示例:https://www.owasp.org/index.php/Testing_for_CSS_Injection_(OTG-CLIENT-005)。如果只向浏览器提供静态内容,应该没有风险。
https://stackoverflow.com/questions/32814706
复制相似问题