Что может привести к тому, что CSS время от времени не загружается во всех браузерах?

StackOverflow https://stackoverflow.com/questions/94123

  •  01-07-2019
  •  | 
  •  

Вопрос

Я работаю над веб-приложением, и время от времени мы сталкиваемся с ситуациями, когда страницы загружаются без применения CSS.Эта проблема обнаружилась в IE6, IE7, Safari 3 и FF3.

Обновление страницы всегда устранит проблему.

Загружено 3 CSS-файла, все в одном блоке стиля с использованием @import:

<STYLE type="text/css">
  @import url([base css file]);
  @import url([skin css file]);
  @import url([generated css path]);
</STYLE>

В любой ситуации, когда мы тратим время на изучение исходного кода html, нет ничего необычного.Журналы доступа также кажутся нормальными - мы получаем ответы HTTP 304 для статических файлов CSS всякий раз, когда они запрашиваются, и ответ HTTP 200 для нашего сгенерированного CSS.

Mimetype - это text / css для файлов css и сгенерированного css.Мы используем сервер iPlanet, который пересылает запросы на сервер Tomcat.

спросил дейвбаг:

Всегда ли не загружается один и тот же css-файл, или проблема во всех них, равномерно?

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

Это было полезно?

Решение

У меня случалась похожая ситуация, которую я смог исправить, сначала включив базовую таблицу стилей, используя метод "link rel", а не "@import".т. е.переместите ваше включение [базового css-файла] в:

<link rel="stylesheet" href="[base css file]" type="text/css" media="screen" />

и поставьте это перед остальными.

Другие советы

если это происходит достаточно часто, чтобы вы могли видеть это в своем браузере, попробуйте установить расширение Firefox Live http headers или расширение Tamper Data и следите за заголовками ответов в том виде, в каком они отображаются браузером.

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

Но если я изменю его (например) на /reservedArea/ActionName или /aPath/ActionName это работает :/

Это безумие...

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

Я постоянно вижу, как это происходит в сети.Изображения не будут загружаться до тех пор, пока вы не обновите их, css испорчен и т.д.Все эти ситуации решаются с помощью обновления.

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

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

Используйте ab, или httperf, или curl, или что-то еще, чтобы повторно загружать CSS-файлы с веб-сервера.Возможно, это не приводит к постоянному обслуживанию страниц.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top