且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

重定向回到同一页时出现CakePHP缓存问题

更新时间:2023-09-12 10:00:04

你找到了这一切的原因吗​​?正在尝试解决这个问题,我在我的回复标题中看到这个

 年龄0 
连接保持
Date Tue,21 Apr 2015 08:47:21 GMT
服务器ATS / 3.2.4


$ b b

具有 304未修改状态的所有文件都有Apache流量服务器(ATS)(来自我的LAN),导致我认为它是导致所有这一切行为;我强制执行非缓存,此处 a>我没有更多的问题。


I'm using CakePHP 2.6

I'm having a problem when I redirect back to the same view from where the request was made. The view seems to be cached, so whatever changes were made during the request are not shown until the page is refreshed again.

This means:

  1. the user can't see the changes just made.
  2. Flash messages are shown on the following view (which is bad).

Why is this happening?

Things I've checked:

  • My PHP environment has caching turned off
  • My CakePHP configurations are the defaults (see below).
  • Caching should be disabled because I'm in debug mode: Configure::write('debug', 2);
  • I'm testing in multiple browsers with and without browser caching enabled.

Configure::write('Session', array( 'defaults' => 'php' ));

Representative example:

    //Inside ListingsController...

    $this->Listing->id = $id;
    if ($this->Listing->save($listing)) {
        $this->Flash->success(__('"%s" is now active.', $listing['Listing']['title']));
    } else {
        $this->Flash->error(__('Problem activating'));
    }
    //this is the original view...
    $this->redirect( array('controller'=>'listings', 'action'=>'mylistings') ); 

I have the exact same problem. Did you find the cause to all this? As I was trying to solve the issue I saw this in my response headers

Age 0 
Connection keep-alive 
Date Tue, 21 Apr 2015 08:47:21 GMT 
Server ATS/3.2.4

All the files with a 304 Not Modified Status had Apache Traffic Server (ATS) (from my LAN) which led me to think it is the one causing all this behaviour; I forced the non caching as explained here and I have no more problems as such.