2017-04-10 10:26:29 4301次浏览 2条回答 1 悬赏 50 金钱

谁有yii2使用模板生成静态页的例子或者别的什么

  • 回答于 2017-04-10 10:49 举报

    配置路由做伪静态吧。

    1 条回复
    回复于 2017-04-11 08:44 回复

    现在明确的就是要做成静态的

  • 回答于 2017-04-10 14:16 举报

    我做过在不使用模版的情况下生成静态页面,你要吗

    5 条回复
    回复于 2017-04-11 08:44 回复

    可以贴出来看下吗?

    回复于 2017-04-12 11:16 回复

    核心思想是使用了FragmentCache这个类,把静态的html存储到数据库,或是文件,或是内存里面(这个是由FragmentCache的cache属性决定的),实现方法是:
    在view文件里面使用如下的方法
    <?php if($this->beginCache($id, ['variations' => [Yii::$app->language]])) :?>
    xxxx(你要生成静态页面的内容)
    <?php $this->endCache();?>
    <?php endif;?>
    这个是片段的静态页面的做法,如果需要全局静态页面的做法,使用PageCache这个类,在你的controller里面写如下方法,并且进行相关配置,这个根据你的实际情况来配置就行,这个要说一下这个dependency,这个参数,如果你希望的静态页面的有效是依赖于某个条件,就可以使用这个参数,比如下面的这个dependency的意思是,在post的数量不变的情况下,静态页面是有效的。
    public function behaviors()
    {

    return [
        [
            'class' => 'yii\filters\PageCache',
            'only' => ['index'],
            'duration' => 60,
            'variations' => [
                \Yii::$app->language,
            ],
            'dependency' => [
                'class' => 'yii\caching\DbDependency',
                'sql' => 'SELECT COUNT(*) FROM post',
            ],
        ],
    ];
    

    }

    回复于 2017-04-15 14:47 回复

    嗯,现在的思路是填写一些必要字段,然后使用一个布局作为模板,然后动态调用数据之后将整个页面生成静态页面,

    回复于 2018-07-12 11:09 回复

    这个是作为部分缓存 和 页面缓存的

    回复于 2018-07-12 11:10 回复

    我想生成静态文件index.html 那种,定时生成

您需要登录后才可以回答。登录 | 立即注册
今之人兮
CEO

今之人兮 郑州

注册时间:2016-05-04
最后登录:2021-09-29
在线时长:49小时14分
  • 粉丝8
  • 金钱16365
  • 威望10
  • 积分16955

热门问题