我想知道是否有可能爲每個{filename}.html.twig
生成{filename}.html
?我知道一個解決方案是從瀏覽器複製和粘貼源代碼,但是有沒有更有效的方法呢?生成相當於一個樹枝文件的HTML模板?
預先感謝您。
我想知道是否有可能爲每個{filename}.html.twig
生成{filename}.html
?我知道一個解決方案是從瀏覽器複製和粘貼源代碼,但是有沒有更有效的方法呢?生成相當於一個樹枝文件的HTML模板?
預先感謝您。
我認爲這樣的解決方案可以滿足您的需求。
curl www.yoururl.com > /path/to/yourfolder/file.html
看看下面的故事看看,如果你有興趣。
故事
幾個月前,我在做一個項目yii2。由於來自外部服務的響應,索引頁面在3秒內加載。 Cloudflare和其他緩存方案沒有成功 - 我想出了最好的2.5秒。
經過2-3天的思考期,我發現了一個討厭的解決方案:) 創建一個無緩存,新版本的主頁並寫了一個crone作業,以獲取該頁面的內容並寫入index.html每2分鐘公開一次(在yii2 web
)文件夾內。
其他網頁沒問題 - (< 0.2s),所以沒有爲他們寫任何東西。
所有我做過,是
curl www.example.com > /path/to/web/index.html
如果你想與每個渲染自動創建這些文件,那麼我建議覆蓋默認渲染Twig_Environment
的方法,並創建自定義類的一個實例來初始化嫩枝
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');
我在哪裏創建實例? (非常新的樹枝)@DarkBee –
你使用'樹枝'獨立或'symfony',''silex',...? – DarkBee
要緩存的樹枝輸出? – DarkBee
是的,你的措辭比我可以更好@DarkBee –