【问题标题】:Force reload CSS file on ipad home screen app在 ipad 主屏幕应用程序上强制重新加载 CSS 文件
【发布时间】:2014-03-31 22:37:42
【问题描述】:

我有一个已添加到 iPad 主屏幕的 HTML/JS/CSS 应用程序。这不是缓存的 HTML 应用程序 - 它没有 cache.manifest 并且应该从服务器中提取数据。

由于某些疯狂的原因,它缓存了 CSS 文件并拒绝从服务器获取新版本。移动 Safari 确实正确显示了最新版本。我删除了主屏幕图标,关闭了最近列表中的应用程序,清除了 safari 缓存、cookie 和网站数据,关闭了最近应用程序中的 safari,并在确保我看到最新数据后再次重新添加了主屏幕图标苹果浏览器。当我运行它时,它仍在使用旧的 CSS 缓存版本。

值得注意的是,它需要大约 20 次重新启动才能看到更新的图像和 javascript 文件,但仍然看不到新的 css。

任何指针都非常受欢迎。

附:我设法通过将它连接到计算机,进入开发控制台并从那里刷新,在我自己的 ipad 上解决了这个问题,但是我不能强迫客户端做同样的事情(至少因为客户端没有 mac) - 我需要一种方法来强制它仅从 ipad 刷新文件,而不涉及任何其他硬件。

【问题讨论】:

    标签: css html ipad caching homescreen


    【解决方案1】:

    我遇到过几次了。

    最简单的解决方案是在你的 css 链接后添加一个版本号:

    <link rel="stylesheet" href="style.css?ver=1" type="text/css" />
    

    在进行编辑时只需更改版本号 - 这应该会强制设备重新加载 CSS。

    【讨论】:

    • 这确实有效。但是我不能仅仅因为这个愚蠢的 iOS 错误而不可能更改我的所有文件并将 js 函数引用到此。还有其他方法吗?耶稣,这让我很痛苦。
    • 这是一个旧答案 - 它可能仍然不准确
    【解决方案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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-19
      • 2012-07-21
      • 1970-01-01
      • 2011-10-04
      相关资源
      最近更新 更多