如何在 Android 的 chrome 上禁用缓存?

Posted

技术标签:

【中文标题】如何在 Android 的 chrome 上禁用缓存?【英文标题】:How to disable cache on chrome for Android? 【发布时间】:2013-09-08 17:16:13 【问题描述】:

如何在 chrome for Android 上禁用缓存?

我更改了我的页面内容,并刷新了页面,但内容仍然是旧的。

我已经像下面这样设置了 nginx 配置,但是没有效果。

#disable cache
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma no-cache;
add_header Expires 0;

有没有办法获得我的最新页面而无需一次又一次地手动清除缓存?

【问题讨论】:

您是否尝试这样做以进行开发?还是为了真正的流量? 【参考方案1】:

这可能不是最简单的方法,但它会 100% 有效,并且无论如何都应该成为您开发设置的一部分。

在 Windows 或 Mac 上使用 Google Chrome 网络工具将允许您执行“remote debugging”。

    通过设置中的开发者菜单在 android 设备上启用远程调试。 使用 USB 将手机连接到电脑 打开 Google Chrome 并访问开发者控制台 (F12) 点击三个点(右上角)> 更多工具 > 远程设备。 向下滚动以选择您的移动设备,此时您应该会看到所有 chrome 实例在您的手机上打开。按Inspect 选择您希望“强制重新加载并禁用缓存”的实例 应该会出现另一个屏幕,允许您访问网络选项卡并选择“禁用缓存”

【讨论】:

很棒的男人!!!感谢这个提示。不幸的是,您必须在此过程中始终保持窗口打开,就像在 PC 浏览器中一样。而且电话有点变慢。但见鬼,总比没有好。谢谢 对于那些无法将手机连接到调试会话的用户,请务必在按 F12 并选择“远程设备”之后将手机插入。这将弹出提示以接受完成连接所需的手机上的调试会话。你可以阅读更多关于here的信息。 三星用户还应该查看this answer 以了解其他一些步骤。具体来说,您可能需要运行 adb devices 才能开始。 即使勾选了“禁用缓存”的 chrome 有时也会使用它!【参考方案2】:

目前无法在 Android 的 chrome 上禁用缓存,但可以清除缓存。

更新:目前有一种方法可以禁用缓存,需要连接手机并需要远程调试,请参阅 Dean Meehan 的 answer 了解更多信息 按照以下步骤清除缓存。

http://www.refreshyourcache.com/en/chrome-android/

    点击菜单按钮(右上角的三个点)。 点击菜单中的设置。 点击菜单中的隐私。 点击底部的清除浏览数据...。 从列表中选择清空缓存。 确认清除浏览数据。

【讨论】:

请从您提供的链接中复制要点。一段时间后,链接可能会断开,答案将不再有效。 我不能,我没有那么大的名声。 @Shariq:您可以编辑自己的帖子。使用链接中的相关部分扩展您的答案。如果您不这样做,您的回答将非常接近被删除。 好的,谢谢你的帮助! 关键是禁用它,这样您就不必每次都执行这些步骤【参考方案3】:

我知道问题是关于在 Android 的 chrome 上禁用缓存,但这可能会帮助人们寻找移动开发的解决方案。

要使用您的 Android 设备查看您网站上的更改,请使用 Chrome 网络菜单中的新隐身标签

    在 chrome 浏览器中点击右上角的下拉菜单 点击“新建隐身标签” 导航到您的网站并查看您最近所做的所有更改。

重要提示:要在以隐身模式查看后看到新的更改,您必须完全关闭隐身模式并重新打开,因为当前标签页也会缓存。

【讨论】:

有帮助!我不知道为什么,但在最新版本中,我必须重新加载整个 Chrome 才能看到变化。 最简单的方法!【参考方案4】:

要首先禁用缓存,您必须禁用正在编辑的脚本/css 缓存。

为此,请在您的文件包含中添加时间戳

<link rel='stylesheet' href='/static/css/main.css?t=ts'/>
<script type='text/javascript' src='/static/scripts/main.js?t=ts'></script>

ts 是一个时间戳(我正在使用 jinja 模板)。

然后,如果您编辑 html 页面,您可以更改请求,向其中添加随机参数:

测试 1: mywebsite.com/this_page

测试 2: mywebsite.com/this_page/?i=1

测试 3: mywebsite.com/this_page/?i=2

...

与其说是真正的解决方案,不如说是一种 hack,但 chrome 会忽略 cache-control 元数据,因此没有很多干净的方法可以做到这一点。

【讨论】:

这是唯一对我有用的解决方案,因为我没有使用 PC 进行开发。【参考方案5】:

以下 bash 脚本将重命名

&lt;script src="path/to/app.js"&gt;&lt;/script&gt;

&lt;script src="path/to/app.js?t=18:15:45&gt;&lt;/script&gt;

index.html 文件中,这将阻止移动缓存。

#!/bin/bash

time=$(date +"%T")
sed -i "s/app.js/app.js?t=$time/" ./path/to/index.html

【讨论】:

【参考方案6】:

下载此应用:应用缓存清理器

    打开应用 通过“3 个虚线”按钮转到应用设置

screenshot

    勾选显示小部件的选项,其余由您决定

您也可以禁用 Chrome 的数据压缩策略和页面预加载。

目前,chrome 中没有“禁用缓存”选项

screenshot2

PS:因为我的rep太低,所以我不显示图片,请帮我增加它;p

【讨论】:

@Joshua 的回答也有帮助。 请注意格式、拼写和语法。这将有助于获得更大的代表。

以上是关于如何在 Android 的 chrome 上禁用缓存?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Android 在 chrome 上自动播放 <video> 标签?

禁用 android 的 chrome 下拉刷新功能

调试时禁用 chrome 数据保护程序

如何在 Ubuntu 上降级 Chrome 并禁用自动更新?

禁用 Chrome for Android 文本选择弹出窗口

Chrome 在离线时禁用按钮和输入元素