【问题标题】:How to delete cache files everytime a user access my website with iOS' Safari?每次用户使用 iOS 的 Safari 访问我的网站时,如何删除缓存文件?
【发布时间】:2020-03-26 19:40:04
【问题描述】:

我是 Web 开发的新手,最近我做了一个简单的网站,没有使用任何框架。我确保遵循“响应式网页设计”以使我的网站适合移动设备。我在几种设备上测试我的网站,例如:桌面(Firefox 和 Chrome)和移动设备(iOS Safari),但是有一段时间,在编辑我的 CSS 文件后,CSS 规则没有正确加载,因此我想要的样式移动网站未应用到 HTML 标记。

我找到了解决这个问题的办法,就是把iOS设备上的所有网站缓存都删除了,我做了之后,重新访问了网站,网站就按预期显示了。

有什么方法可以删除/刷新设备上为我的网站存储的缓存? 提前致谢!

【问题讨论】:

    标签: php html css safari


    【解决方案1】:

    最简单的方法是将查询参数添加到文件中。基本上看起来像这样

    <script src="/path/to/your-script.js?v=1.0.01"></script>
    

    您可以对所有静态文件(CSS、JS、图像)执行相同的操作。每次更改“v”的值时,都会强制 Safari 重新下载文件。不过,这更像是一种强制用户下载新版本静态文件的生产黑客行为。

    最终在您的开发服务器上,您希望使用来自您的服务器(无论是 Apache、Nginx 还是其他)的标头禁用浏览器缓存。 Safari 尊重这些。

    如果你使用 PHP 来输出你的 HTML,你可以使用下面的代码来确保你总是有动态变量

    <script src="/path/to/your-script.js?js=<?= time(); ?>"></script>
    

    这基本上会使浏览器缓存每秒失效。

    【讨论】:

    • 好的,谢谢,您对“v”值是什么以及它如何能够做到这一点有任何参考吗?
    • "v" 是我虚构的变量。这是一个 HTTP 查询参数。你基本上可以用你想要的任何东西替换“v”。我使用“v”作为“版本”的首字母缩写词。浏览器缓存发生在 URL 级别,因此 URL 的任何更改(如添加/更改查询参数)都会强制浏览器重新下载文件。
    猜你喜欢
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    相关资源
    最近更新 更多