実は今までは、サイトの負荷を軽減するため、JSONにソフトウェアの更新情報を格納しておいて、ユーザーさんがブラウザでページを表示した後から、jQueryを使って情報を取ってくるようにしていました。
ですが、じゃっかんのタイムラグがあり、かつブラウザによってはキャッシュが効いていて、すぐに更新内容が反映されないことがありました。
そこで、本業でも使う機会があったので、その研究も兼ねて、テンプレートエンジンの大御所である「Smarty」を導入してみることにしました。
ところが、ネットであるとおりにインストールして、実際にロジックとテンプレートを分けて、実行してみたところ、
いきなり大量のエラーが・・・
Fatal error: Uncaught exception 'SmartyCompilerException' in /hibara/smarty/sysplugins/smarty_internal_templatecompilerbase.php:657 Stack trace: #0 /hibara/smarty/sysplugins/smarty_internal_templateparser.php(3144): Smarty_Internal_TemplateCompilerBase->trigger_template_error() #1 /hibara/smarty/sysplugins/smarty_internal_templateparser.php(3209): Smarty_Internal_Templateparser->yy_syntax_error(10, '?') #2 /hibara/smarty/sysplugins/smarty_internal_smartytemplatecompiler.php(105): Smarty_Internal_Templateparser->doParse(10, '?') #3 /hibar/smarty/sysplugins/smarty_internal_templatecompilerbase.php(192): Smarty_Internal_SmartyTemplateCompiler->doCompile('compileTemplate(Object(Smarty_Internal_Template)) #5 /hibara/smarty/sysplugins/smarty_internal_templatebase.php(164): Smarty_Internal_Template->compileTemplateSource() #6 /hibara/smarty/sysplugins/smarty_internal_ in /hibara/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 657
※パスは変えてます(Smartyがインストールされたディレクトリです)。
ネットで調べてみても、同様の現象に当てはまるものは見つからず、
Stack Overflow界隈を調べてみても、よく質問されているような、テンプレートファイルのパースエラーという感じでも、プラグイン絡みでもない。
Smartyのコアでエラー発生となっていて「えー、そこからソースを追うことになるのですか・・・」と泣きそうになって、その箇所を調べてみると、コールバック関数でエラーが発生している模様。ええっ、さらにその先?・・・
そこまでして導入するのはイヤだ・・・
と、じゃっかん諦めが入りつつ、もう少し自分のテリトリーを調べてみたら、やってました・・・ちょー凡ミス。
文字コードが「Shitf-JIS」になっていました。
机に自分の頭を叩きつけてやりましたよ(笑)。
metaタグに合わせて、UTF-8へエンコーディング変換したら、無事問題なく動作しました。ちゃんちゃん。
凡ミスすぎるとはいえ、ハマったのでメモ。
誰かまたやるかもしれないから(笑)。
このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。
日々の開発作業で気づいたこと共有を。同じところで躓いている人が、 検索で辿り着けたら良いな、というスタンスで記事を書くので不定期更新になります。
コメントする