header(«Content-type: text/css»); works in Firefox, Chrome and other, but not in Internet Explorer 9. I am not sure what’s up.
In Chrome and Firework it shows the style sheet if I open it in its own tab and it’s being applied to the page.
In Chrome under Network in the developer tools it says the type is text/css and the status is 200.
In Internet Explorer 9, it wants to download the style sheet if I open it in its own tab and it’s not being applied to the page.
How to Create a CSS Stylesheet with PHP
Variables can be very useful in CSS. Unfortunately CSS isn’t particularly variable-friendly. In comes PHP. It is very easy to dynamically create portions of your CSS style sheet using PHP. You can also generate the entire style sheet using PHP if you wish, but I find it usually more practical to only generate needed sections of my CSS with PHP. Either way, here is how it is done:
Convert Existing CSS Style Sheet to PHP
Lets start with an existing webpage with the below index.html and style.css files.
Content of index.html:
This is text inside a p tag which is inside of the box div…
header(«Content-type: text/css»); работает в Firefox, Chrome и других, но не в Internet Explorer 9. Я не уверен, что случилось.
В Chrome и Firework отображается таблица стилей, если я открываю ее на своей вкладке и она применяется к странице.
В Chrome под сетью в инструментах разработчика говорится, что тип – text/css а статус – 200.
В Internet Explorer 9 он хочет загрузить таблицу стилей, если я открою ее на своей вкладке и не будет применен к этой странице.
В инструментах разработчика F12 вы можете щелкнуть по сети, начать захватывать и обновлять страницу. Он показывает Style.css.php . Тип text/html и результат 406.
IE имеет « Нет, я не шучу по поводу типа Content-Type »:
BTW: убедитесь, что вы также отправили Last-Modified и отключили session.cache_limiter в PHP, в противном случае браузеры будут продолжать перезагружать файл CSS, что негативно скажется на производительности.
Internet Explorer имеет историю доверия к расширению файла по типу MIME, о котором сообщает браузер. Если у вас есть доступ к mod_rewrite, попробуйте HTML-файл .css, а затем создайте правило mod_rewrite, которое связывает этот URL с вашим скриптом.
Я обнаружил, что использование header(«Content-type: text/css», true); работает на меня. Он не позволяет серверу выводить 2 заголовка HTTP для «Content-Type».
Есть ли выход до отправки заголовка? Спецификация в файле php? Возвращение кареты?
Если вы отключили отчет об ошибках, вы можете не увидеть ошибку, которую он должен вызвать.
Попробуйте добавить ob_start() сверху, он разрешит любую проблему, связанную с заголовками, уже отправленными перед вызовом header() .
Если у вас есть спецификация в файле UTF8, вы можете удалить ее.
Я думаю, проблема может быть связана с mod_security которая служит для страницы ошибки 401 (HTML), а не для CSS. Попробуйте добавить это в файл .htaccess в корневом каталоге вашего веб-сайта, чтобы узнать, устраняет ли это проблему.
Статья Handle Images / CSS / JS как PHP без httpd.conf Использование .htaccess помогло мне разобраться в проблеме.
В основном вы делаете все те же вещи, что и все остальные (настройка заголовка на PHP и т. Д.), Но также используйте .htaccess для установки параметра AddHandler.
Таким образом, вы можете назвать его с помощью .css и все еще иметь PHP, анализируя его.
Для Internet Explorer 9, обслуживающего код статуса HTTP 406 в заголовке ответа для динамически созданного файла CSS, мы:
- Удален модуль mod_negiotiation Apache или добавлен -Multiviews в конфигурацию хоста (или .htaccess).
- Активированный Apache mod_rewrite
Добавлено правило перезаписи для конфигурации виртуального хоста или htaccess:
Примечание. Это решение подходит только для серверов / виртуальных хостов, не использующих Multiviews, поскольку удаление mod_negotiation также позволяет использовать эту директиву.
Недавно у меня тоже была такая проблема. Отвратительная отладка – все, что я могу сказать об этом. Не уверен, что это может помочь вам людям, но я надеюсь, что так оно и будет. В погоню.
Internet Explorer использует что-то вроде нюхания типа Mime, которое просто читает 200 байтов заголовка FILE.
У меня был PHP-скрипт, который должен был возвращать разные видеофайлы (с данными – весь файл) в зависимости от параметра, которому он был поставлен.
Пример моего видео-запроса: get-v >
Вы должны приостановить свой скрипт сразу же после отправки данных файла. Это предотвращает обнюхивание типа IE Mime.