我想知道是否可以为每{filename}.html
生成{filename}.html.twig
?我知道一种解决方案是从浏览器复制并粘贴源代码,但是有更有效的方法吗?
提前谢谢。
答案 0 :(得分:1)
我认为,这样的解决方案将满足您的需求。
curl www.yoururl.com > /path/to/yourfolder/file.html
如果您有兴趣,请看一下故事。
<强>故事强>
几个月前,我正在开展一个yii2项目。由于来自外部服务的响应,索引页面在3秒内加载。 Cloudflare和其他缓存方案没有成功 - 我最好提出2.5秒。
经过2-3天的思考,我发现了一个令人讨厌的解决方案:)
创建了一个无缓存,新鲜版本的主页并编写了一个crone作业,以获取该页面的内容并每隔2分钟写入public(在yii2 web
)文件夹中的index.html文件中。
其他页面还可以 - (&lt; 0.2s),所以没有为他们写任何东西。
我所做的一切,都是
curl www.example.com > /path/to/web/index.html
答案 1 :(得分:0)
如果你想用每个渲染自动创建这些文件,那么我建议覆盖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');