链接预取不能正常工作,导航时再次获取脚本

问题描述

我有一个简单的标记

<!DOCTYPE html>
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <Meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Document</title>
    <link rel="prefetch" href="page2.html">
    <link as="script" rel="prefetch" href="./src/script2.js">
</head>
<body>
    <p>Let's check</p>
    <a href="page2.html">Go to page 2 where script2 is there</a>
    <script src="./src/script1.js"></script>
</body>
</html>

在这里,我正在预取第二个脚本 script2.js 。它已成功预取,但是当我单击页面2链接上的脚本标签 script2.js 时,再次下载了script2,它并没有从预取缓存中获取它。

这是page2.html

<!DOCTYPE html>
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <Meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>This is page 2</p>
    <script src="./src/script2.js"></script>
</body>
</html>

解决方法

遇到了类似的问题,原因是我在 Google Chrome 中禁用了缓存。

您可以在此答案中了解如何在 Chrome DevTools 中禁用/启用缓存https://stackoverflow.com/a/7000899/2992661