我正在使用下面的脚本来gzip一些CSS和JS文件。它工作得很好 - 除了提供错误内容类型的JS文件(而不是相应的应用程序/ x-javascript)。我如何改进PHP代码以提供正确的内容类型?谢谢!
htaccess的:
AddHandler application/x-httpd-php .css .js
php_value auto_prepend_file gzip.php
gzip.php:
<?php
ob_start ("ob_gzhandler");
header("Content-type: text/css; charset: UTF-8");
header("Cache-Control: must-revalidate");
$offset = 60 * 60 ;
$ExpStr = "Expires: " .
gmdate("D, d M Y H:i:s",
time() + $offset) . " GMT";
header($ExpStr);
?>
答案 0 :(得分:5)
您可以检查请求的网址路径的结尾:
$_SERVER['REQUEST_URI_PATH'] = strtok($_SERVER['REQUEST_URI'], '?');
$extensionToType = array(
'.css' => 'text/css;charset=utf-8',
'.js' => 'application/javascript;charset=utf-8'
);
$extension = strrchr($_SERVER['REQUEST_URI_PATH'], '.');
if (isset($extensionToType[$extension])) {
header("Content-type: ".$extensionToType[$extension]);
} else {
header("Content-type: application/octet-stream");
}
答案 1 :(得分:0)
您还可以通过FileInfo检查mime类型,而不是使用扩展程序。