私は昨日ウェブサイトで働いていました、そしてすべては順調でした。Smartyを使用するために移植していました。Smartyテンプレートファイルは実際にはあまり機能しなかったため、最後の1ページを変更する必要がありましたが、テストは必要ありませんでした。私は自分の仕事を保存し、すべてを閉じて、去りました。今日の初めに、私はサイトをチェックして、それが干からびているのを見つけました。1ページを除くすべてのページで誤ったテンプレートが表示されています。サーバーのセットアップで何も変更したことがないので、問題になることはありません。以前は問題なく機能していたページは、機能しなくなりました。私は自分の仕事を5回チェックしましたが、何が問題になっているのかわかりません。私が持っているすべてのものを投稿しないために、私はあなたが見たいと思う私のコードを共有します。コメントを残すだけで編集します。何がうまくいかない可能性があるアイデアはありますか?Smarty3.1.8とPHP5.3.3を使用しています。
質問する
476 次
1 に答える
0
(ほぼ)すべてのテンプレートに同じ名前が付けられているため、取り違えが発生しています。このスレッドによると、Smartyがテンプレートをコンパイルするときに、ファイル名のみが考慮され、そのファイルへのフルパスは考慮されないことがわかりました。そのため、コンパイルIDを指定する必要があります。この目的のためには、現在実行中のスクリプトの親ディレクトリにするのが最適です。定数のみを使用する__FILE__
場合、同じディレクトリで複数のスクリプトを使用して同じテンプレートを表示すると、同じテンプレートの複数のコンパイルが発生する可能性があります。だから私dirname(__FILE__)
はコンパイルIDに使用します。これは誰にとっても機能するはずです。
于 2012-05-14T01:41:43.200 に答える