昨天,我们家里没有电,因此没有互联网。所以我认为我不能让我的网络应用程序在本地工作,因为在" index.html"我有:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')
</script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/masonry/3.1.5/masonry.pkgd.min.js"></script>
<script src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/123941/imagesLoaded.js"></script>
<script src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/123941/masonry.js"></script>
然而,事实并非如此,它会顺利进行。所以我猜想浏览器记得上次下载这些js文件时。
当我重新加载我的wep-app时,它将无法加载js文件,因为没有Internet连接。这种行为会一次又一次地发生。
在这两种情况下都无法下载:
<link rel="stylesheet" href="http://fonts.googleapis.com/css?family=PT+Sans+Caption:400,700">
但这不是一个严重的错误。请注意,css的twitter-bootstrap在我的项目文件中是本地的,这就是为什么它无关紧要。
我想了解为什么,有什么想法?
我在MacBook Pro El Capitan中使用chrome版本52.0.2743.116(64位)。
我的:浏览器使用了js文件的缓存版本,但即使在Normal Reload上,也会尝试重新下载它们。
答案 0 :(得分:3)
某些外部文件在HTTP标头中没有设置远期到期日期。
你会注意到,当我加载带有谷歌字体的页面时,这里是响应标题:
Google字体API
Access-Control-Allow-Origin: *
Cache-Control: private, max-age=86400
Content-Encoding: gzip
Content-Type: text/css; charset=utf-8
Date: Sat, 10 Sep 2016 04:55:29 GMT
Expires: Sat, 10 Sep 2016 04:55:29 GMT
Link: <http://fonts.gstatic.com>; rel=preconnect; crossorigin
Server: ESF
Timing-Allow-Origin: *
Transfer-Encoding: chunked
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
你会在这里注意到Google提供了这种字体并且即时过期。
(我访问了Sat, 10 Sep 2016 04:55:29 GMT
上的文件并且它在同一时间到期)这可能就是为什么它从未加载到第一位。
除此之外 - 我真的不确定为什么在页面重新加载后JS文件变得不可用。其余的文件都有远期到期的标题,我使用Firefox版本48.0.1自行测试,没有任何问题。我首先使用您的脚本加载页面,然后选择“脱机工作”。无论我按下刷新次数或F5多少次,浏览器都会继续提供这些文件的缓存版本。也许它是你的浏览器设置,但我不能太确定。也许其他人有更多关于此的信息。