2009-05-09 1 views
4

Я получаю странную ошибку синтаксиса в Firefox 3.0.10/Leopard при использовании следующего HTML/CSS:Firefox ошибка 3 синтаксиса с внешним CSS

foo.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 

<html lang="en"> 
<head> 
    <link rel="stylesheet" href="foo.css"/> 
</head> 
<body> 
Foo 
</body> 
</html> 

foo.css:

div { 
    color: #FF0000; 
} 

и ошибка я получаю в консоли:

Error: syntax error 
Source File: file://path/to/foo.css 
Line: 1, Column: 1 
Source Code: 
div { 

Это не CSS, потому что вставка его в тело встроенного тега STYLE отлично работает. Это не тег ссылки, потому что указание HREF на файл css переполнения стека не дает ошибки. Чувствует себя как ошибка Firefox, но я не могу найти на ней никакой документации. Это известная проблема, и есть ли обходной путь? Это затрудняет отладку или проверку.

Спасибо.

+2

FWIW, это недопустимый HTML, но я не получаю эту ошибку Firefox в Firefox 3.0.9. Попробуйте отключить все расширения. –

+0

Это странный вопрос. Работает ли он, если вы кладете stackoverflow css локально? – Andrew

+0

Мэтью Флашен получил это. Расширение YSlow, похоже, вызывает проблему. Полезно знать для дальнейшего использования. –

ответ

1

Ответ оказался «Отключить расширения (это был YSlow)», как это было предложено в комментариях.

0

Был ли файл написан на окнах? Возможно, вам нужно переформатировать возврат каретки/новую строку в mac os x. попробуйте запустить файл через что-то вроде dos2unix в командной строке. Также может быть bom, которого вы не видите.

+0

nope - написанный в TextMate. Пробовал обманывать концы строк в любом случае безрезультатно. –

0

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

+0

Пробовал это тоже. тщательно перепечатал все это, все еще получаю ошибку. И до сих пор нет ошибки, когда я вырезал и вставлял ее в тег скрипта, который я ожидал бы, если бы я собирал специальные символы. (номер строки ничего не значит, я обнаружил, что он всегда сообщает 1/1 для внешнего файла css, независимо от того, в какой строке находится фактическая ошибка) –

1

Это дает вам ошибку на первом символе в файле, который является «d», который исключает для меня такие вещи, как «скрытые» специальные символы. Я бы предположил, что firefox не может открывать файл локально по какой-либо причине или что файл был случайно сохранен с кодировкой, которая, хотя и отображается в диалоговом окне, отлично не обрабатывается. Возможно, он по ошибке был сохранен как Unicode?

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

+0

apphacker, кажется, избил меня до удара: звучит как Unicode bom - это то, что вызывая это. –

0

Если вы здесь из Google и работаете с локальным html, обратите внимание, что Firefox блокирует запросы для внешнего CSS, которые используют протокол file://, потому что это технически запрос на перекрестный поиск.

Быстрое исправление заключается в обслуживании каталога, содержащего ваш сайт, на локальном хосте по сравнению с http://. Если у вас установлен интерпретатор Python, вы можете сделать это очень легко:

python3 -m http.server 8080 

Затем Localhost доступа через браузер:

firefox localhost:8080 

Вы можете заменить 8080 с любым другим портом.