Posts Tagged ‘external_css’

木曜日, 8 月 13th, 2009

暫く前から見聞伝本家はAtahualpa342で動いている。のだが…。
Atahualpa342導入時、私は大いに期待していた。
特に「CSSとJavaScriptの外部化」にはちょー心躍ったのだ。
CSSを外部化するコードをatahualpaのheader.phpに書き込む、なんて邪道は要らなくなるぜ!
と無邪気に喜んだのだが…。
糠喜びでしたorz

まぁ導入する時にちゃんと調べて置けよ、って話ですけどねー。
とりあえず動作確認しただけで安心しちゃったんですよ。
気付いたのは、8/6に朝倉氏の指摘があってでした。
「何かAtahualpa新しくなってから動作遅くね?」@駒場図書館
うーんマジで?それは困るな…。と思いつつとりあえずSafariのWebInspectorを起動。
確かにどう考えても遅くなっている。しかもリロードしても殆ど速度が上がらない。
その上遅いのは件のCSSとJSっぽい。ナゼ?
というかリロードして速くならないのだから一々生成しているとしか思えないが…。
先ずはここから、とページソースを見てみれば外部CSSの記述には?bfa_ata_file=cssの文字が。
モロまんまクエリじゃねーか!
これでアクセスの度生成している疑いは濃厚を超えて限りなく黒に近いグレーに。
しかし未だ逮捕状は降りない。物証主義だから。
wpmu/?bfa_ata_file=cssにもアクセスしてみるが、圧縮(空白文字を除去)されたCSSが表示される。
アクセスにかかるラグからするとやはり生成が行われている気配が濃厚だが、詳しく調べる時間が無かった。
続きは家に帰ってから、という事でバイトに出撃する。

さて帰宅して第二ラウンド。手始めにatahualpa342の配下でbfa_ata_fileを含むファイルを洗う。
functions.phpが何かやっているので見てみる。
思えばここで道を踏み外した…。
190行目付近の記述に引っかかり、add_filter()の動作を追うべくWPMU本体のソースコードの山へ…。
この期に及んでもfilter_hookとaction_hookの辺りが良く分かってないんです。
やっぱ使ってないからかなぁ…。
なんて愚痴?はともかく、ソースを掻き分け、query_varsにbfa_ata_fileを登録しているらしい、ということは分かった。
しかしその登録されたクエリがどうやって解釈されるのかが良く分からない…。
そういうコードはどこから見つければいいんだ???などとよく分からない悩み。
この辺で8/8位ですね。この後煮詰まり感からしばし中断。

第三し…おっとっと。こんな所でゼミ長を喜ばせている場合ではないのだ(そこ?
第三ラウンドはなんと今朝から始まった。アレだけ煮詰まってたのに…。
解決する時は案外あっさり解決するものである。
今日はなんだか朝っぱらからこの間近所の図書館で借りたJavaScriptの参考書を眺めていたのだが、そしたらなんだか当たり前のことに気付いたのだ。
余談だが、私がこの手の参考書を読むのは珍しい。
大変いい世の中になったもので、大抵の言語(※もちろんコンピュータ言語デスヨ)のリファレンスやサンプルは、Webだけで手に入ってしまう。
話を戻すと、気付いたのは「結局CSSを出力する部分はAtahualpaと同じタイミングでインストールされたはずである」、つまりatahualpa342の配下に最終的に出力するためのコードが含まれているはず。
当たり前の話なんですがねぇ…。ここのところゲームとかゲームとかゲームとかに現を抜かしていたせいか、頭があんまり動いていなかったらしい。
でatahualpa342でgrepしたら「CSS」という語を含んだファイルが見つかる見つかる。
やっぱり怪しいのでfunctions.phpをあけようとフォルダを開くと…。
css.phpってファイルがあるじゃーありませんか。どう見てもこいつだろw
ナゼ最初に気付かない自分。
開けて見るとやっぱりコイツデスヨ。セットでjs.phpってヤツも居るしね…。
さてどこからこれが呼び出されているのかなーとgrepすると、functionsの私が捕まってた行から30行も下じゃない所にあったし。
細かい経緯は不明だけどbfa_css_js_redirect()って関数がtemplate_redirectってアクションにフックされているので、こいつのせいだろ。
さて結局の所、atahualpa342はCSS/JSの外部化はするが外部ファイル化はしないということが判明したわけです。
なんというか中途半端な機能だな…。これじゃーヘッダを見栄えよくする以上の意味は無いではないか。

つまるところ、旧Atahualpaとほぼ同等の手続きをとってCSSをファイルとして保存せにゃなるまい、というのが結論。
CSS関連だけ一ファイルにまとまっているのは改造しやすいけど…。Atahualpaが更新されるたびにこれをやるのかと思うとちょっと気が重いぜorz
さて改造しますか…。ついでにzip圧縮も試してみようかな…。でも圧縮ファイルが受け取れるブラウザかどうかってどうやって判別するんでしょうか?
投げっ放しでとりあえず完。