我尝试使用http / 2 server-push在Laravel网站中预加载一些资产。
<!-- Preload -->
<link href="/fonts/Logo.woff" as="font" type="font/woff" rel="preload" crossorigin>
<link href="/css/app.css" rel="preload" as="style" type="text/css" crossorigin>
<link href="/js/app.js" rel="preload" type="application/javascript" as="script" crossorigin>
<!-- Use -->
<link href="/css/app.css" rel="stylesheet">
<script type="module" src="/js/app.js"></script>
我正在使用Middleware设置链接标题。
但是,脚本和字体被下载了两次(推送和正常请求)
它们都还会发出警告
“找到了'https://localhost/fonts/Logo.woff'的预加载,但未使用,因为请求凭证模式不匹配。请考虑看看crossorigin属性。”
“找到了'https://localhost/js/app.js'的预加载,但未使用,因为请求凭证模式不匹配。请考虑看看crossorigin属性。”
我试图从所有三个标签中删除crossorigin
,但这并不能解决问题。还尝试了crossorigin="use-credentials"
或crossorigin="anonymous"
之类的不同组合。
答案 0 :(得分:0)
以防万一有人遇到相同的问题。 链接HTTP标头必须包含用于字体/脚本的跨域,但不能用于CSS /图像