apache服务器默认配置了utf-8编码,网页(text/html)的响应头content-type也有正常添加charset。开始以为其它文本都这样。然而直接打开js才发现,这个配置没有生效。
AddDefaultCharset UTF-8
按照官方文档指引,我们可以使用“AddCharset”给指定后缀的文件增加编码:
# Maps the given filename extensions to the specified content charset
AddCharset UTF-8 .js .css .txt .json .md .java
重启服务器后,content-type就有增加charset信息了。
当然,即使没有增加上面这个配置,js和css跟页面一起使用也是正常的。因为页面资源的默认编码都会使用页面的编码。也就是说,只要页面配置了编码,其它资源就会沿用这个编码。需要单独配置这个信息的,是直接在浏览器打开文件,这时没有上下文参数,浏览器只能使用默认编码。
这里再补充一个给指定后缀配置MIME的指令:
# Maps the given filename extensions onto the specified content type
# https://www.iana.org/assignments/media-types/media-types.xhtml
AddType text/markdown .md
AddType text/x-java-source .java
若文件的MIME无法找到,上面编码是无法使用的。当然,这是直接使用apache需要配置的内容。若你是混合使用了jetty、tomcat等,这些映射它们默认都有扩展(但是没有的,还是得自己添加),就不需要依靠apache的指令了。