用link标签无法实现http2的server push
服务器已经配置好:
server {
# listen在原https配置文件基础上添加http2
listen 443 ssl http2;
# 添加一句http2_push_preload on表示开启server push功能
http2_push_preload on;
……
}
并且用以下的方式(php)也成功了:
<?php
header("link: </styles.css>; rel=preload; as=style", false);
header("link: </script.js>; rel=preload; as=script", false);
但是据说还可以用link标签的方式来指定要推送的资源:
<link rel="preload" href="/styles.css" as="style">
<link rel="preload" href="/script.js" as="script">
但我一直没试成功这种方式,有人知道这是什么问题吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
两种写法的作用域不一样:
已经输出了html内容, 这个时候浏览器已经可以自己解析link/script了, 干嘛还要用server push呢?
nginx能很容易获取到header, 却不容易解析html
所以, nginx后面需要有个能设置header的服务器, php或者其它语言的, 可以设置一个header, 然后nginx再根据header中的hints规则进行资源的push