Smarty は、ローカルの非キャッシュ問題をカスタマイズします
プラグイン ブロック メソッドを使用します
Smarty/plugins ディレクトリに次の内容のファイル block.nocache.php を作成します:
関数smarty_block_nocache($param, $content, $smarty)
{
$ contentを返します。
}
?>
テンプレート内 (smarty は正常に構成されています):
{nocache}
キャッシュされないコンテンツ (例: {$smarty.now}
)
{/nocache}
上記の構成によれば、nocache ブロックに含まれるコンテンツは随時更新される必要があります
mvc モードで使用すると時々更新できないのはなぜですか?
------最善の解決策----------------------smarty にインサートがあることを覚えています。動的読み込み、キャッシュを使用しない
-----その他の解決策---------1. プラグイン形式
関数の名前を指定します (例: nocache)。次に、プラグイン ファイルに移動してブロック関数を作成します。 (./plugins/block.nocache.php) ファイルに名前を付けるときは、カスタム関数の要件に従う必要があります。キャッシュが生成されないように、この関数で各リクエストのコンテンツの一部を表示する必要があります:
関数 Smarty_block_nocache($args, $content){
$content を返します;}
?>
Smarty のすべてのプラグインはデフォルトでキャッシュされます。したがって、このファイルもキャッシュされます。この時点で、構成ファイル Smarty_Compiler.class.php を変更する必要があります。ファイルの 712 行目は次のようになります。「 $this->_plugins['block'][$tag_command] = array($plugin_func, null、null、null、true); "すべてのプラグインが自動的にキャッシュされないように、括弧内の true を false に変更します。すべてのプラグインを非キャッシュ状態に変更したくない場合は、私が作成したファイル block.nocache.php をキャッシュしないようにするだけです。
if($tag_command==nocache){
$this->_plugins['block'][$tag_command] = array($plugin_func, null, null, null, false);}
それ以外の場合{
$this->_plugins['block'][$tag_command] = array($plugin_func, null, null, null, true);
}
これで問題は解決しました。皆さん、ありがとう