ホームページ  >  記事  >  バックエンド開発  >  Smarty テンプレートが同じ名前 (異なるパス) を持つ場合、コンパイルされたファイルは上書きされます。

Smarty テンプレートが同じ名前 (異なるパス) を持つ場合、コンパイルされたファイルは上書きされます。

WBOY
WBOYオリジナル
2016-06-23 14:26:301298ブラウズ

Smarty PHP

Smarty テンプレートが同じ名前 (異なるパス) を持つ場合、コンパイルされたファイルは上書きされます。
たとえば、
ファイル 1
//$obj_tpl是smarty对象$obj_tpl->setTemplateRoot(dirname(__FILE__));$obj_tpl->display("index.tpl");

ファイル 2
//$obj_tpl是smarty对象$obj_tpl->setTemplateRoot(dirname(__FILE__));$obj_tpl->display("index.tpl");

ファイル 1 とファイル 2 は同じパスにありません。 2 つのindex.tpl ファイルの内容も異なります。
実行後、ファイルは
/template_c/%%117/%%1172603085 にコンパイルされます。
その結果、ファイル 1 とファイル 2 は、ブラウザで開いたときに同じ Index.tpl を使用します。
独自のパスを自動的に適用するindex.tplを実装したい。これを解決するにはどうすればよいでしょうか?

ディスカッションへの返信 (解決策)

ディレクトリ構造を指定します

/mod/zhuanti0402/
contains
Index.php
Index.tpl

/mod/zhuanti0528/
contains
Index.php
Index.お願いします

/template_c/ はここでめちゃくちゃです
合計で 1 つの php と 1 つの tpl だけが必要なので、php と tpl のテンプレート ファイルを別のディレクトリに配置しませんでした。すべて1ページで解決します。

スマートはどこですか?どのように設定して呼び出すのか?

呼び出しは次のようになります
$obj_tpl = JATUtility::UseSmarty();
これにはまだ設定があるのでしょうか?

この問題を解決する方法を見てください

私もこの問題に遭遇しました: 1. ファイル名を変更し、同じファイル名を使用しないでください。 2. Smarty テンプレートを使用する前に毎回、compile_dir を再定義します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。