web-dev-qa-db-ja.com

OpenCart 3での開発のためにテンプレートキャッシュを無効にする

OpenCart 3のテーマテンプレートに変更を加えています。テンプレートのキャッシュのため、「storage/cache」ディレクトリの下で毎回キャッシュをクリアする必要があります。開発中に頻繁に変更を行ったりプレビューしたりするのは非常に面倒です。実稼働環境と開発環境に応じてキャッシュを構成する方法を提供してください。

注:すでにオンラインでソリューションを検索しましたが、テンプレートキャッシングに関連するソリューションはありません。画像キャッシュを無効にするソリューションは利用可能ですが、「画像キャッシュ」と「テンプレートキャッシュ」はOpencartで提供される異なる機能です。

16
Rajat Jain

OpenCart3のより新しいバージョンにアップグレードする必要があるかもしれません-最初のバージョン(3.0.0.0)にはGUIでこれを行う方法がありませんでした。

3.0.2.0などのより新しいバージョンでは、管理ダッシュボードにギアがあります。歯車をクリックすると、キャッシュを無効にするオプションが表示されます。

enter image description here

38
Scott C Wilson

これを行う別の方法:system\library\template\Twig\Cache\Filesystem.phpを開き、次のコード行を見つけます

public function load($key)
{
    if (file_exists($key)) {
        @include_once $key;
    }
}

次のコードのようにコメントアウトします。

public function load($key)
{
    // if (file_exists($key)) {
    //      @include_once $key;
    // }
}

これは、 twig)のテンプレートキャッシュを削除し 、開発が終了したら毎回再作成し、コメント。

2
Rupak Nepali

Opencartバージョン3.0.2.0私は同じ問題を抱えていました。テーマエディタまたは実際の生のtwigファイルで作業してみてください。

テーマエディターで変更を削除し、実際の編集を戻しましたtwig file my screen shot

2
Randall Klassen

アクセスできる場合は、CODEから直接これを行うこともできます。 ftpまたはcPanelを介して以下のこのファイルパスに移動します。

system\library\template\Twig\Environment.php

見つける

$this->debug = (bool) $options['debug'];

交換:

$this->debug = (bool) true;
2
Pavan Mehta

テンプレートをパスとして編集すると思います:前にデザイン->テーマエディター。

データベースのoc_themeデータテーブルの日付をすべてクリアします。

1
john

スコットの答えは最高ですが、バージョンが原因で利用できない場合、またはプログラムで無効にする場合は、twigがレンダリングされる前にどこでも実行できます。

$this->config->set('template_cache', false);
1
billynoah