我有一个HTML / JS / CSS应用程序已添加到iPad的主屏幕上。这是不缓存的HTML应用程序 - 它没有cache.manifest,应该从服务器提取数据。
由于一些疯狂的原因,它缓存了CSS文件并拒绝从服务器获取新版本。移动safari确实正确显示最新版本。我删除了主屏幕图标,杀死了最近列表中的应用程序,清除了safari缓存,cookie和网站数据,在最近的应用程序中杀死了safari,并在确保我看到最新数据后再次重新添加主屏幕图标苹果浏览器。当我运行它时,它仍然使用CSS的旧缓存版本。
值得注意的是,它花了大约20次重新启动才能看到更新的图像和javascript文件,但它仍然没有看到新的CSS。
任何指针都非常受欢迎。
P.S。我设法通过将它连接到计算机,进入开发控制台并从那里刷新,在我自己的ipad上解决了这个问题,但是我不能强迫客户端做同样的事情(至少因为客户端没有mac) - 我需要一种方法来强制它单独从ipad刷新文件,而不涉及任何其他硬件。
答案 0 :(得分:2)
我已经碰到过几次了。
最简单的解决方案是在css链接后添加版本号:
<link rel="stylesheet" href="style.css?ver=1" type="text/css" />
只需在进行编辑时更改版本号 - 这会强制设备重新加载CSS。
答案 1 :(得分:2)
如果您使用的是php,则可以将文件修改时间戳添加到css链接:
<link rel="stylesheet" href="style.css?ver=<?= filemtime('style.css') ?>" type="text/css" />
这会强制它在每次更改时重新加载文件。
请在此处查看更完整的说明: http://php.net/manual/en/function.filemtime.php#81194
在这里: https://markjaquith.wordpress.com/2009/05/04/force-css-changes-to-go-live-immediately/