防止从磁盘加载的UIWebView中缓存.css文件

时间:2010-08-23 16:18:29

标签: iphone css caching uiwebview

在我正在处理的iPad项目中,我在应用程序内部有一个UIWebView,它显示一个链接到.css文件的.html文件,即

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

这些文件存储在iPad本地,但是从远程服务器获取。我注意到UIWebView或多或少地无限期地缓存.css文件,并且每当我更改它时都拒绝加载新文件。我曾经改变了文件的名称只是为了让它重置,但从长远来看这是不可接受的。

有没有办法阻止在UIWebView中缓存CSS文件?或者甚至更好,有没有办法说什么时候缓存,什么时候不去?

2 个答案:

答案 0 :(得分:16)

将您的行更改为:

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

每次更新样式表时,请更改版本。由于查询字符串,浏览器会认为它是一个不同的页面,您的服务器将忽略它。

如果您使用的是服务器端语言(如PHP),您还可以执行以下操作:

<link rel="stylesheet" href="style.css?version=<?php echo time(); ?>" type="text/css">

每次刷新时都会更改版本,从而停止所有缓存。

答案 1 :(得分:1)

保持HTML标记和iOS代码隔离的更好方法是

[[NSURLCache sharedURLCache] removeCachedResponseForRequest:yourRequest];