Тип контента не работает в PHP - PullRequest
9 голосов
/ 24 марта 2010

У меня есть некоторые проблемы с файлом PHP, который не работает должным образом. Content-type вообще не получает ни один браузер. Firebug интерпретирует файл как text / html вместо css. Вот файл:

<?php
header('Content-Type: text/css; charset=UTF-8');
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 'On');
/* CSS goes on from here */

Я проверил, чтобы поставить строку с echo 'TEST'; перед строкой заголовка, и ожидал увидеть классическую ошибку "заголовки уже отправлены", но ничего не появляется!

Обычные .css-файлы работают как шарм.

Что я могу сделать, чтобы разобраться с этим?

UPDATE: Изменил default_mimetype = "text/html" на default_mimetype = "text/css" в php.ini, и все страницы были немедленно интерпретированы как css, так что должен быть способ просто отправить заголовки css для этого файла:)

Полный файл по запросу Джона:

    <?php
    header('Content-Type: text/css; charset=UTF-8');
    echo 'body {background-color: #000000; }';
    ?>

ОБНОВЛЕНИЕ № 2: Добавление ini_set('default_mimetype', 'text/css'); в файл PHP исправляет этот файл, но не решает проблему, которая вызывает эту ошибку ...

ОБНОВЛЕНИЕ № 3: Протестировано добавление AddType text/css .css в конфигурацию .htaccess и Apache. Все еще не повезло. Также проверено на отправку заголовков, отделенных от кодировки: header('Content-Type: text/css'); - Все еще не повезло ...

ОБНОВЛЕНИЕ № 4: Переустановите Apache + PHP на сервере, чтобы увидеть, исчезнет ли проблема, но нет. Такой же старый, такой же старый ...

Ответы [ 13 ]

0 голосов
/ 24 марта 2010

Вы можете попробовать Content-Style-Type: text/css

См. Ниже здесь

<META http-equiv="Content-Style-Type" content="text/css">

Язык таблицы стилей по умолчанию также может быть установлен с Заголовки HTTP. Выше МЕТА объявление эквивалентно HTTP заголовок:

Content-Style-Type: text/css

Edit:

По ссылке упоминается добавление AddType text/css .css в файл конфигурации apache. Может быть, вы можете попробовать это

Edit2 Посмотрите 'css' по этой ссылке . У кого-то была такая же проблема, как и у вас. Попробуйте отправить заголовок без кодировки

У меня недавно была угроза для волос проблема с Firefox и XHTML 1.0 переходная.

Работало нормально с другими браузерами, а также с HTML 4.1.

Короче говоря, Сгенерированные PHP файлы JS и CSS были все еще сообщается заголовками как text / html, тогда как в HTML они были текст / CSS и приложение / Javascript; Firefox сказали, что страница была XHTML 1.0 стал сохраняющим анал и отказался от стиля страницы. (Я думаю JS все еще работал, но я исправил в любом случае.)

Решение:

header ('Content-type: text / css'); а также заголовок ( "Content-Type: приложение / JavaScript ");

Редактировать 3 Была запись о том, что некоторые формы не предоставляют никаких данных из-за утилиты AVG Linkscanner. Поскольку вы переустановили Apache + php, и я предполагаю, что вы не переустанавливали ОС, поэтому вы можете исследовать это / попробовать, отключив некоторые утилиты / плагины.

0 голосов
/ 24 марта 2010

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

0 голосов
/ 24 марта 2010

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

...