如何在 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 脚本将重命名
<script src="path/to/app.js"></script>
到
<script src="path/to/app.js?t=18:15:45></script>
在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> 标签?
如何在 Ubuntu 上降级 Chrome 并禁用自动更新?