Как удалить шрифт, загруженный с помощью @ font-face, из кэша браузера? - PullRequest
2 голосов
/ 31 марта 2011

Несколько дней назад я допустил ошибку: я опубликовал новую версию своего веб-приложения, используя @ font-face с ограниченной версией «Droid Sans» (без латинских символов). Файл шрифта размещен на моем сервере. Теперь я изменил шрифт с полной версией (большинство моих клиентов - испанцы). Новые клиенты получают полный шрифт без проблем, но клиенты, которые впервые получили доступ с ограниченным шрифтом, не получают специальные символы.

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

@font-face {
font-family: 'Droid';
src: url(/files/DroidSans.eot);
src: url(/files/DroidSans.eot?iefix) format('eot'),
     url(/files/DroidSans.woff) format('woff'),
     url(/files/DroidSans.ttf) format('truetype'),
     url(/files/DroidSans.svg#webfontw7zqO19G) format('svg');
font-weight: normal;
font-style: normal;
}

@font-face {
font-family: 'DroidBold';
src: url(/files/DroidSansBold.eot);
src: url(/files/DroidSansBold.eot?iefix) format('eot'),
     url(/files/DroidSansBold.woff) format('woff'),
     url(/files/DroidSansBold.ttf) format('truetype'),
     url(/files/DroidSansBold.svg#webfontSOhoM6aS) format('svg');
font-weight: normal;
font-style: normal;
}

body, a, p, div, span, li, td, th, caption {
  font-family: Droid, Optima, Calibri, Helvetica, sans-serif;
  font-size: 10pt;
  line-height: 14pt;
}

Ответы [ 3 ]

2 голосов
/ 31 марта 2011

Изменение имени шрифта должно помочь, так как имя является единственным критерием для браузера, чтобы видеть, кэширован ли шрифт или нет.

1 голос
/ 31 марта 2011

изменить имя шрифта и ссылку в файле CSS.Потому что, если вы хорошо настроите свой сервер для статических файлов (etag, время кэширования), большинство браузеров не будут запрашивать более новую версию файла в течение длительного времени.

1 голос
/ 31 марта 2011

Самым простым способом принудительной перезагрузки может быть добавление бессмысленной строки запроса к URL-адресу шрифта (или изменение имени шрифта, как подсказывает @Silver light, разумеется!1002 *

Это, конечно, требует, чтобы ресурс, на котором у вас есть эта информация, также перезагружался .Если это внешняя таблица стилей, возможно, вам придется применить тот же трюк, чтобы заставить его обновиться:

<link rel="stylesheet" href="styles.css?r=1234567890">
...