1

{filename}.htmlごとに生成できるかどうか知りたい{filename}.html.twigですか?ブラウザからソース コードをコピー アンド ペーストすることが 1 つの解決策であることは知っていますが、これを行うより効率的な方法はありますか?

前もって感謝します。

4

2 に答える 2

1

そのような解決策は、あなたのニーズを満たすと思います.

curl www.yoururl.com > /path/to/yourfolder/file.html

興味のある方は下のストーリーをご覧ください。

数ヶ月前、私は yii2 プロジェクトに取り組んでいました。外部サービスからの応答により、インデックス ページの読み込みに 3 秒かかりました。Cloudflare やその他のキャッシング シナリオは成功しませんでした。2.5 秒がベストだと思いつきました。

2〜3日の思考期間の後、私は厄介な解決策を見つけました:)キャッシュレスの新しいバージョンのホームページを作成し、クローンジョブを作成して、そのページのコンテンツを取得し、パブリック内のindex.htmlファイルに書き込みました( yii2 web) フォルダーに 2 分ごとに。

他のページは大丈夫だった - (<0.2s) ので、何も書いていない。

私がやったのは、

curl www.example.com > /path/to/web/index.html

于 2016-07-28T20:10:15.033 に答える
1

各レンダリングでこれらのファイルを自動的に作成する場合は、デフォルトの render メソッドを上書きし、Twig_Environmentカスタム クラスのインスタンスを作成して Twig を初期化することをお勧めします。

class MyTwigEnvironment extends \Twig_Environment {
    public function render($name, array $context = array())
    {
        $html = $this->loadTemplate($name)->render($context, $site_id);
        file_put_contents('path/to/cache/folder'.$name.'.twig', $html);
        chmod('path/to/cache/folder'.$name.'.twig', 0664);
        return $html;
    }   
 }

$twig = new MyTwigEnvironment($loader, $options);
echo $twig->render('some_template.html');
于 2016-07-28T20:00:06.560 に答える