我已经在http://www.knuckledown.net建立了一个非常简单的html页面,看起来像这样:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
</head>
<body>
</body>
</html>
如果我尝试在Safari (iPhone或Windows Safari桌面)中加载此页面,浏览器将显示加载旋转器1分钟,直到超时。但只有在你加载页面的时候。
这在IE, Chrome或Firefox中不会发生,并且无论脚本的名称或内容是什么都无关紧要。当我在本地机器上托管文件时,它不会发生,只有在我的Heroku主机上才会发生。如果它是相关的,它是由PlayFramework 1.2.4提供的。我被难住了,你知道这里会发生什么吗?
——update——
heroku日志:
» 08:28:01.445 2013-05-29 22:28:01.378683+00:00 heroku router - - at=info method=GET path=/ host=www.knuckledown.net fwd="101.165.43.250" dyno=web.1 connect=13ms service=13ms status=200 bytes=115
» 08:28:01.868 2013-05-29 22:28:01.791882+00:00 heroku router - - at=info method=GET path=/js/jquery-1.7.2.min.js host=www.knuckledown.net fwd="101.165.43.250" dyno=web.1 connect=2ms service=45ms status=304 bytes=33732
我发现这与我的响应头有关。我为Play Framework实现了我自己的静态文件gzip,最小化和缓存,我在这里忘记了:https://stackoverflow.com/a/10916904
我猜我使用的缓存头是可接受的所有浏览器,除了Safari。
它是基于现有的Play框架缓存策略,所以我想我会禁用addEtag()方法,直到我能想出如何修复它。