ForceType text / html; charset = utf-8 в .htaccess приводит к тому, что все внешние ссылки CSS прекращают рендеринг - PullRequest
3 голосов
/ 22 марта 2010

Я использую:

ForceType text/html;charset=utf-8

в моем файле .htaccess, но это приводит к тому, что все внешние ссылки CSS прекращают рендеринг на соответствующих страницах.Так что-то вроде этого:

<link rel="stylesheet" type="text/css" href="somestyles.css" media="all" />

больше не работает на странице с его использованием.

Я также пробовал комбинации:

AddCharset utf-8 .html
AddCharset utf-8 .htm
AddCharset utf-8 .css
AddCharset utf-8 .js
ForceType text/html;charset=utf-8
ForceType text/css;charset=utf-8

, но не повезлодо сих пор.Кто-нибудь знает в чем дело?

Ответы [ 2 ]

7 голосов
/ 22 февраля 2012

Это все, что вам нужно, чтобы получить UTF-8 для файлов CSS и Javascript:

AddDefaultCharset utf-8
AddCharset utf-8 .css .js
5 голосов
/ 04 мая 2010

Это работает для меня на моем веб-хосте (в моем корне .htaccess):

#for html, php
AddDefaultCharset UTF-8
#for css, js
AddType 'text/css; charset=UTF-8' css
AddType 'application/x-javascript; charset=UTF-8' js

Я не уверен, но я думаю, что ForceType может сообщать браузеру, что файл css - это html, а не css.

UPDATE:

Прежде всего, application/x-javascript больше не должен использоваться; это должно быть application/javascript (x- означает экспериментальный). Но это даже проще, по крайней мере, для Apache 2.2.22

#for html, php
AddDefaultCharset UTF-8
#for css, js, etc.
AddCharset UTF-8 .js .css

Использование AddType также устанавливает тип MIME, о котором Apache, вероятно, позаботится правильно, в то время как мой первоначальный ответ установил его неправильно для javascript (на сегодняшний день). Поэтому позвольте Apache выполнять свою работу с MIME-типами и использовать более короткую и простую однострочную AddCharset для всех дополнительных типов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...