【问题标题】:How do I enable page caching in Yii? It's not working如何在 Yii 中启用页面缓存?它不工作
【发布时间】:2015-04-07 11:55:16
【问题描述】:

如何在 Yii 中启用页面缓存?我按照文档进行操作,但它不起作用。
http://www.yiiframework.com/doc-2.0/guide-caching-page.html
http://www.yiiframework.com/doc-2.0/guide-structure-filters.html#pagecache

class SiteController extends Controller {
    public function behaviors() {
        return [
            'pageCache' => [
              'class' => 'yii\filters\PageCache',
              'only' => ['index'],
              'duration' => 10*60,
              'variations' => [
                  \Yii::$app->language,
              ],
Server response
HTTP/1.1 200 OK
Date: Thu, 02 Apr 2015 01:25:06 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.2a DAV/2 PHP/5.6.7
X-Powered-By: PHP/5.6.7
Set-Cookie: ...cookies...
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 4750
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

注意没有Cache-Control:max-age=Expires: 标题。如果我将类更改为xPageCache,那么它确实会因错误而失败,因此它正在读取设置。

【问题讨论】:

  • 你能为我们扩展“不工作”吗?你怎么知道它不起作用?您在响应标头中寻找什么?
  • 是否值得暂时取出only 看看是否有问题?
  • @halfer 好的,我注释掉了那行,注释掉了 .htaccess,然后重新加载了页面,但它仍然没有发送任何 Cache-Control 标头。
  • 为什么你认为 yii 必须给你发送缓存头?这是一个网络服务器作业(apache2、nginx)。 Yii 只是缓存页面内容并保存到文件、db 或 memcached(取决于配置)。
  • 好的,接下来我将深入研究插件,看看它是否被调用(我希望它是,并且它在某些内部条件下失败)。另外,请尝试暂时取出variations,以防出现问题。

标签: php caching yii yii2


【解决方案1】:

它正在工作。我不得不更新页面的设计,重新加载后它不会显示更改。它似乎是服务器端渲染缓存,而不是 HTTP 浏览器缓存。所以它保存了页面的渲染,而不是对服务器的请求/响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    相关资源
    最近更新 更多