2013-02-14 2 views
8

По какой-то причине моя страница загружает только часть (около 1/3 моего файла CSS). Это конкатенация и минимизация. Если я перейду к http://staging.easyuniv.com/styles/dbf42ab5.main.css Я вижу все это.Только часть файла CSS загружается в Chrome

Самая странная часть заключается в том, что если посмотреть на источники в Chrome Dev Tools, примерно на треть пути он будет пустым (прямо в середине имени класса), но затем вы можете прокрутить остаток пути, как если бы текст был там.

Я загружая его на моей странице со следующим:

<link rel="stylesheet" href="styles/dbf42ab5.main.css"> 

Любой когда-либо работать на что-нибудь подобное? У меня не хватило сил, чтобы попробовать.

+1

Простой вопрос: это проблема кэширования? Попробуйте «глубокую перезагрузку» несколько раз. – arkascha

+0

Можете ли вы опубликовать ссылку на файл CSS? –

+0

Есть сообщения об ошибках? Что в файлах журнала? – arkascha

ответ

6

Файл far from valid, на который, вероятно, следует посмотреть, но вот что я нашел & hellip;

  • Я не могу вставить содержимое файла CSS в http://cssbeautify.com/ - СМЧ отрезан почти в том же месте, как Chrome делает
  • я могу вставить в http://www.codebeautifier.com/ который может создать файл CSS, который будет загружать только отлично! Очень странно.

Через некоторое проб и ошибок, он, кажется, что CSS-файл, который сцепляется на одной строке выглядит, как он был отрезан при использовании инструментов разработчика Chrome. Файл, кажется, был проанализирован, как с помощью Ctrl + Сдвиг + F и искать что-то в конце файла (я искал zag-divider), то Chrome сообщает что он будет найден, хотя найденного графа казалось неправильным.

В частности, кажется, что любая строка этого файла CSS, которая составляет> = 66,537 символов, будет отключена!Например:

  • одна строка CSS файл < = 66,536 символы не будут обрезаны
  • один файл линии CSS> = 66,537 символы будут обрезаны
  • мульти линия CSS файл> = 66,537 символы будут иметь только те строки, которые> = 66537 будет отрезан

Я имел одну строку ровно 66537 символов CSS, которые были отрезаны, но при добавлении одного возврата каретки после первого селектора и перегрузки, весь файл был показан правильно в консоли.

Итак, подведем итоги & hellip; файл CSS с любой строкой> = 66 537 символов выглядит так, как будто он был частично отрезан в инструментах разработчика Chrome, хотя файл действительно был загружен полностью. Я проверил это, добавив правило в конец строки, которое было применено Chrome.

Примечание: Я был бы счастлив, если, казалось бы, магическое число было 2

Edit: Исследование проводится на Chrome 23.0.1271.97 м

+0

** + 1 ** для приятного анализа! – HamZa

+0

Значит, есть лимит символов в строке? Хороший указатель там действительно +1 –

+0

@Monkieboy кажется, что в Chrome Dev Tools есть ограничение _display_ в строке (или ошибка!). CSS из всей строки все еще, кажется, применяется правильно – andyb

1

Я попытался запустить его через несколько парсеров:

http://www.codebeautifier.com

http://www.cssportal.com/css-validator

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

Из представленных синтаксических анализаторов я предлагаю вам вернуться к неограниченной версии и начать снова, потому что ошибки, которые я видел здесь, слишком многочисленны (более 900 были идентифицированы), чтобы вы попытались «исправить» css.

1

Для Googlers, имеющих эту проблему, но не исключительно использование Google Chrome, может быть полезно проверить, что усечение не является результатом известного pitfall of Nginx and virtualization, который можно было бы решить, отключив sendfile в вашем блоке сервера.

Вы можете найти больше об этой проблеме в этой статье: http://www.conroyp.com/2013/04/25/css-javascript-truncated-by-nginx-sendfile/

Смежные вопросы