生成相当于twig文件的HTML模板?

时间:2016-07-28 19:49:26

标签: html twig twig-extension

我想知道是否可以为每{filename}.html生成{filename}.html.twig?我知道一种解决方案是从浏览器复制并粘贴源代码,但是有更有效的方法吗?

提前谢谢。

2 个答案:

答案 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');