ForceType text/html; .htaccess中的charset = utf-8导致所有外部链接的CSS停止渲染

chi*_*cal 3 apache .htaccess

我正在使用:

ForceType text/html;charset=utf-8

在我的.htaccess文件中,但它导致所有外部链接的CSS停止在各自的页面上呈现.

所以像这样:

<link rel="stylesheet" type="text/css" href="somestyles.css" media="all" />
Run Code Online (Sandbox Code Playgroud)

不再适用于使用它的页面.

我也一直在尝试组合:

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
Run Code Online (Sandbox Code Playgroud)

但到目前为止没有运气.有谁知道什么是错的?

Aug*_*rom 7

这就是获取CSS和Javascript文件的UTF-8所需的全部内容:

AddDefaultCharset utf-8
AddCharset utf-8 .css .js
Run Code Online (Sandbox Code Playgroud)


Sla*_*ack 5

这适用于我的网站主机(在我的根.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
Run Code Online (Sandbox Code Playgroud)

我不确定,但我认为ForceType可能告诉浏览器css文件是html,而不是css.

更新:

首先,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
Run Code Online (Sandbox Code Playgroud)

使用AddType也设置了MIME类型,Apache可能会正确处理,而我的原始答案设置错误的javascript(截至今天).因此,让Apache在MIME类型上发挥作用,并AddCharset为所有其他类型使用更短更简单的单行.