Кажется, браузер (или это Visual Studio?) Кэширует таблицу стилей и, следовательно, любые изменения, которые я делаю в - PullRequest
4 голосов
/ 07 января 2010


Я использую таблицу стилей как часть темы, и кажется, что IE и Firefox (или, возможно, VS Express Edition) кэшируют эту таблицу стилей, так как любые изменения, которые я делаю в таблице стилей (например, изменение значений атрибутов и т. Д.) не отображаются на отображаемой странице. Есть идеи, как запретить кэшированию этой таблицы стилей браузером или Visual Studio?


Кстати - кэшируется только таблица стилей, а не вся страница

Кроме того, когда я заметил, что любые изменения, внесенные в таблицу стилей, не отражаются на отображаемой странице, я переключился с Firefox на IE. При первой загрузке страницы в IE страница отображалась так, как и должна (отражая все изменения, которые я внес в таблицу стилей), но затем IE также начал кэшировать таблицу стилей

* 1013 спасибо *

Ответы [ 8 ]

5 голосов
/ 07 января 2010

Если у вас есть Firefox с панелью инструментов веб-разработчика, вы можете легко отключить кэширование. Вы также можете использовать Ctrl + F5, чтобы обновить страницу. Удерживание Ctrl говорит браузеру выполнить принудительное обновление, которое игнорирует кеш.

4 голосов
/ 07 января 2010

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

<link type="text/css" rel="stylesheet" href="/styles.css?v=<%= DateTime.Now %>" />
3 голосов
/ 07 января 2010

Вы можете попробовать добавить номера версий в ваш css href:

<link rel="stylesheet" type="text/css" href="path/to/stylsheet.css?v1.0.1" />

Строка запроса (v1.0.1) не влияет на css как таковую, но если число увеличивается, браузер перезагружает таблицу стилей (stylesheet.css).

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

Хорошая идея - иметь версию сборки:

[CB]

protected string GetAssemblyVersion()
{
    // get the version object for this assembly
    Version v = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;

    // or do it in pieces
    return v.Major + "." + v.Minor + "." + v.Build +"." + v.Revision;
}

[MARKUP]

<link href="/path/to/style.css?v=<%=GetAssemblyVersion() %>" type="text/css" rel="stylesheet" />
1 голос
/ 07 января 2010

Как все говорили, нажмите Ctrl + F5, чтобы обновить страницу.

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

1 голос
/ 07 января 2010

Вы можете попробовать нажать кнопку Shift, когда нажмете кнопку обновления - это всегда работало для меня.

1 голос
/ 07 января 2010

У этого парня есть скрипт, который вы можете разместить на своих страницах asp, FWIW

0 голосов
/ 07 января 2010

Вы можете попробовать использовать метатеги, чтобы указать, что срок действия страницы истек. Например:

<head id="Head1" runat="server">
    <title></title>    
     <meta http-equiv="CACHE-CONTROL" content="NO-CACHE, must-revalidate, max-age=0" />
     <meta http-equiv="expires" content="0" />
     <meta http-equiv="Pragma" content="no-cache" />
</head>

Я обнаружил, что эти метатеги не всегда учитываются браузерами. IE, кажется, лучше всего обнаруживает, что страница не должна кэшироваться / срок действия содержимого истек.

В противном случае обновите страницу, чтобы перезагрузить содержимое, как уже было предложено.

-Frinny

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...