2016-07-28 14 views

答えて

1

このような解決策は、あなたのニーズを満たすものと思っています。

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

あなたは

数ヶ月前。

ストーリーに興味を持って、私はyii2プロジェクトに取り組んでいたならば、物語下記をご覧。外部サービスからの応答のため、インデックスページは3秒でロードされていました。 Cloudflareや他のキャッシングシナリオは成功しませんでした - 私は最高で2.5秒を思いついた。

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

他のページはok - (< 0.2s)でしたので、何も書いていませんでした。

私がやったすべては、あなたが小枝の出力をキャッシュしたい

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

0

あなたは、各レンダリングで自動的にこれらのファイルを作成したい場合は、その後、私はデフォルトはTwig_Environmentのrenderメソッドを上書きし、小枝

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'); 
を初期化するために、カスタムクラスのインスタンスを作成することをお勧め
+0

よりも優れた言葉を使っています。 @DarkBee –

+0

あなたは 'twig'をスタンドアローンか' symfony'、 'silex'、...と使っていますか? – DarkBee

関連する問題