Rails 3.1, конвейер ресурсов и IE 6 & 7 в рабочем режиме - некоторые CSS & js загружены неправильно - PullRequest
6 голосов
/ 24 декабря 2011

Испытание моего приложения на Rails 3.1 в производственном режиме (Debian 6, Ruby 1.9.2, Passenger). Я попробовал это, используя IE 6 и IE 7, и некоторые ресурсы не загружены должным образом. Все отлично работает в режиме разработки.

Некоторые css & js не загружаются должным образом, все файлы компилируются. В частности у меня проблемы с выпадающим меню (JQuery Superfish меню). Все отлично работает в IE8, IE 9, Firefox, Chrome как в производстве, так и в разработке. Эта проблема обнаруживается только в IE 6 и 7 в разделе «Производство».

Пробовал очистить кеш (как в браузере, так и на сервере). Перекомпиляция активов. Ничто не видит, чтобы помочь.

Кто-нибудь сталкивался с чем-то подобным?

Ответы [ 3 ]

9 голосов
/ 04 января 2012

Для тех, у кого есть такая же проблема, здесь корень проблемы из службы поддержки MS (http://support.microsoft.com/kb/262161):

Эта проблема возникает из-за следующих условий в Internet Explorer: Всетеги стилей после первых 31 тегов стилей не применяются. Все правила стилей после первых 4095 правил не применяются. На страницах, где правило @import используется для постоянного импорта внешних таблиц стилей, которые импортируют другие таблицы стилей, таблицы стилей которых превышаюттри уровня глубины игнорируются.

ARRRRRRRRRRRRRRR !!! Убито пару дней, пытаясь отследить проблему с моим кодом, когда MS снова не соответствовала стандартам !!! # @)(! @ #)

Это привело меня к дальнейшим исследованиям, и, к моему изумлению, IE6 и IE7, похоже, обрабатывают только первые 2025 строк в большом файле CSS - остальное игнорируется.(Сначала я думал, что это ограничение ряда строк, но оказалось, что это было 4095 правил, которые были на линиях 2025).Просто кажется глупым.Более новые IE и Chrome, Safari, Opera и FF, похоже, не имеют проблем с этим.В итоге я разбил свой css на application-1.css & application-2.css, чтобы свести к минимуму количество файлов в производстве, но это все равно очень раздражало.

1 голос
/ 15 мая 2012

Существует отличный модуль CssSplitter, который люди используют для разделения файлов CSS, т.е. он был адаптирован для использования из конвейера ресурсов.https://gist.github.com/2398394

1 голос
/ 24 декабря 2011

Отладка включена? т. е. ваш javascript разделен в режиме разработки?

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

У меня было несколько проблем, когда активы были объединены вместе, и в одном из файлов отсутствовала точка с запятой. Это может быть трудно найти, но может случиться. Другие лучшие браузеры отображают их нормально, но IE просто все перемешивает.

...