Запрет кеширования .css файлов в UIWebView, загруженном с диска - PullRequest
9 голосов
/ 23 августа 2010

В проекте iPad, над которым я работаю, у меня есть UIWebView внутри приложения, которое отображает файл .html, который ссылается на файл .css, т.е.

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

Эти файлы хранятся локально на iPad, но загружаются с удаленного сервера. Я заметил, что UIWebView кэширует файл .css более или менее бесконечно и отказывается загружать новый файл всякий раз, когда я его изменяю. Однажды я изменил имя файла, чтобы сбросить его, но в долгосрочной перспективе это недопустимо.

Есть ли способ предотвратить кэширование файла CSS в UIWebView? Или даже лучше, есть ли способ сказать, когда кешировать, а когда нет?

Ответы [ 2 ]

16 голосов
/ 23 августа 2010

Да.

Измените свою строку следующим образом:

<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 голос
/ 23 января 2014

Лучший способ сохранить разметку HTML и код iOS - это

[[NSURLCache sharedURLCache] removeCachedResponseForRequest:yourRequest];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...