• 更新:
  • 投稿:
  • カテゴリィ:

CSSファイルを利用して、こだわったスタイルにしたい場合、記述が何百行にもなり、CSSファイルが重くなってくる。すると、ページの表示速度も遅くなる、と言う道理。

そこで、PHPを利用して、CSSファイルを圧縮し、読みこんだ時に展開する方法を見つけた。

PHPにあるob_gzhandlerを使ってファイルをgzip圧縮して展開時にCSSフォーマットに戻しています。また、キャッシュを1時間保持するようにもなっているので、毎回スクリプトが走るということもありません。

Stylesheet Stylebook:PHPでCSS圧縮

手順を説明すると、まずスタイルシートのファイル名(拡張子)を「php」に変更する。「styles-site.css」→「style-site.php」のように。

そして、変更したスタイルシート(PHPファイル)の先頭に、下記のコードを追加。

<?php 
ob_start ("ob_gzhandler");
header("Content-type: text/css");
header("Cache-Control: must-revalidate");
$offset = 60 * 60;
$ExpStr = "Expires: " . 
gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
header($ExpStr);
?>

後は、このPHPファイルを読みこむだけ。自分は、下記のようにしている。

<style type="text/css">
@import url("ファイル名.php");
</style>

さて、CSSファイルを圧縮できるなら、他のファイルも可能なはず。というわけで、自分は「Main Index」と「Individual Entry Archive」の先頭にも下記のコードを追加してみた。

<?php 
ob_start ("ob_gzhandler");
header("Content-type: text/html");
header("Cache-Control: must-revalidate");
$offset = 60 * 60;
$ExpStr = "Expires: " . 
gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
header($ExpStr);
?>

自分の環境では正常に閲覧可能だけど、他の方はどうだろう?

てか、劇的に表示が早くなる、というモノでもないですよ。おまじないに近い?(笑)

[2] このページの一番上へ戻る