IE не использует перенаправленный URL для разрешения относительных URL - PullRequest
5 голосов
/ 08 сентября 2011

У меня есть сервлет, который генерирует CSS для данного имени colorScheme, если оно существует в базе данных. Однако, если colorScheme не найден, он выдает response.sendRedirect () для расположения фактического файла в нашей CDN.

Это работает во всех браузерах, кроме IE, когда CSS содержит относительные ссылки на изображения для значков, фонов и т. Д. Каждый другой браузер использует перенаправленный URL (URL-адрес CDN) для разрешения относительных URL-адресов в файле CSS, но IE все еще использует исходный URL-адрес запроса (URL-адрес сервлета).

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

Ответы [ 3 ]

2 голосов
/ 27 декабря 2011

Похоже, больше проблемы с дизайном кода. Лично я не полагаюсь на то, что IE сделает что-то как следует. Это всегда подводит меня :(. Я всегда включал ваш CSS из CDN в начале заголовка, используя тег HTML LINK, а затем позволял импорту JS перезаписывать его послесловие. Таким образом, ваш сайт также будет выглядеть прилично в браузерах noscript.

0 голосов
/ 03 января 2012

Поскольку мы обрабатываем наш HTML / JS в другом сервлете перед вызовом сервлета colorScheme, я проверял, был ли запрошенный скин динамическим (из сервлета) или нет на данном этапе. Если colorScheme является динамическим, я записываю тег ссылки с адресом сервлета CSS, в противном случае я записываю адрес CDN.

0 голосов
/ 20 ноября 2011

В качестве обходного пути вы можете использовать тег css @import вместо перенаправления на внешний файл css.

@import url('http://www.example.org/style.css');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...