首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >包括Http2的头部,包括css、js和php中的文件,用于服务器推送。

包括Http2的头部,包括css、js和php中的文件,用于服务器推送。
EN

Stack Overflow用户
提问于 2017-02-23 14:34:44
回答 2查看 2K关注 0票数 0

在apache2中成功包含http2之后。我面临着服务器推送的问题。我有4-5 css ,4-5 js和100在网站上的图像。那么我该如何处理多个资产呢?

代码语言:javascript
运行
复制
    <link href="source" rel="stylesheet">
    <script src="source"></script>
    <img src="source">
   header('Link: </asset/to/push.js>; rel=preload; as=script')

所以我必须为每个资产标头,如果我有100个资产,那么就会有100个标头

EN

回答 2

Stack Overflow用户

发布于 2017-02-23 16:31:51

添加Link头并让Apache解析它们并推送相关资源的另一种解决方案是自然地将辅助资源(如jscss和图像文件)与主资源相关联。

这是我们在Jetty中采取的方法(免责声明,我是该解决方案的实现者)。

我们使用这个解决方案来服务我们自己的网站,基于WordPress,通过HTTP/2和HTTP/2推送。

这里给出了方法:slidesvideo

其基本思想是,当浏览器接收到一个超文本标记语言页面时,它立即对其进行解析,并执行下载jscss文件等辅助资源所需的请求。服务器(在本例中为Jetty )可以将主资源( html)与辅助资源相关联。

下一次请求相同的html页面时,Jetty已经知道所需的辅助资源是什么,并且可以推送它们。不需要Link头,因为Jetty会从浏览器执行的请求模式中“学习”页面所需的资源。

这种方法可以在基础上进行微调,但开箱即用,并提供了显著的性能改进,请参阅上面链接的视频中的here for the live demo

我推荐阅读/观看整个幻灯片/视频,了解更多关于HTTP/2和HTTP/2推送的内容,但重点是,Jetty + PHP和HTTP/2的组合是一个强大的HTTP/2推送解决方案,并且不需要更改PHP页面-这在使用WordPress或Drupal等PHP框架时非常完美,并且可以避免在您的PHP页面中添加100+ Link头文件。

票数 1
EN

Stack Overflow用户

发布于 2017-03-27 17:23:19

只需尽早推送真正需要的内容,否则最终可能根本没有性能优势。

这就是我添加图标字体的方式:

代码语言:javascript
运行
复制
header("link: </fonts/icons.woff2?v=".$version.">; rel=preload; as=font; type=\"font/woff2\" nopush", false);

当使用多个链接报头时,不要忘记设置replace=false。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42408641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档