ビューを作成するとき、後で追加する予定のcssやjsを予め指定しておくことはあると思います。そんな時にはまったというお話です。
404ページをroutes.phpで定義しておくと、そのクラス/アクション関数が呼び出されます。.htaccessの設定にもよりますが、存在しないcssやjsを指定した時も呼び出されます。ただ、ブラウザに表示されるものは、ブラウザが要求したURLに対して、レンダリングされたページですから、表示されないだけです。
眼に見えないため、意識していませんが、内部では動いています。404で呼び出すページ、それを含んでいるクラスのbefore()、after()なども動作してしまうということを、意識しておく必要があります。
私の場合、どのページからもログイン出来るようにし、ログイン処理が終わったら、元々いたページへ戻る処理を入れていて、引っかかりました。もしかしたら使うかも知れないと、JQueryのスクリプトの読み込みを入れていたのですが、指定したディレクトリーにJQuery自体を入れていませんでした。
通常ページも404ページも同じクラスを拡張し、その元クラスでURLの保存処理をしていたため、そのJQueryのスクリプトが、復帰すべきアドレスとして、毎回記録されていました。
追記:faviconも用意していないと、内部で処理されます。
まあ、エラーページとその他のページは、細かくクラスを分けたほうがいいですね。私の場合、できるだけコード量を少なくしようと、頑張ったのが、しくじったポイントでした。
しかし、Fuel自体にcssやjs、イメージを読み込むためのAssetクラスが用意されており、クラスメソッドを使ってlink文やscript文を生成する場合、ファイルの存在チェックをしているのは、私と同じような失敗をした人がいたので、組み込まれたんだと思います。 :D
| Fuelphp、1.1登場!< 前 | 次 >Fuelphp、セッションをファイルやDBへ切り替える |
|---|
| < 前 | 次 > |
|---|