{filename}.html
ごとに生成できるかどうか知りたい{filename}.html.twig
ですか?ブラウザからソース コードをコピー アンド ペーストすることが 1 つの解決策であることは知っていますが、これを行うより効率的な方法はありますか?
前もって感謝します。
{filename}.html
ごとに生成できるかどうか知りたい{filename}.html.twig
ですか?ブラウザからソース コードをコピー アンド ペーストすることが 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
各レンダリングでこれらのファイルを自動的に作成する場合は、デフォルトの 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');