我正在开发一个使用Cake php 2.x的网站。我的问题是当调试2站点中的站点正常运行时,如果调试0不能正常运行,我甚至在我的core.php中禁用了应用程序中的缓存
Configure::write('Cache.disable', true);
例如:我在登录之前看到一些页面-它显示link1,link2 ...,login(link),登录后进入同一页面时,它应该显示link1,link2 ...,myaccount(link),但仍显示登录。仅在刷新页面2或3次后,链接或被更改。但是,如果我转到登录之前未曾访问过的页面,则显示正确。
响应头是
array(11) {
[0]=>
string(15) "HTTP/1.1 200 OK"
[1]=>
string(35) "Date: Tue, 22 Mar 2016 07:30:43 GMT"
[2]=>
string(14) "Server: Apache"
[3]=>
string(24) "X-Powered-By: PHP/5.5.33"
[4]=>
string(124) "Set-Cookie: CAKEPHP=f86bc010f3cc0cafb417ee8651372aa3; expires=Tue, 22-Mar-2016 11:30:43 GMT; Max-Age=14400; path=/; HttpOnly"
[5]=>
string(21) "Content-Length: 18892"
[6]=>
string(30) "Cache-Control: max-age=2592000"
[7]=>
string(38) "Expires: Thu, 21 Apr 2016 07:30:43 GMT"
[8]=>
string(32) "Vary: Accept-Encoding,User-Agent"
[9]=>
string(17) "Connection: close"
[10]=>
string(38) "Content-Type: text/html; charset=UTF-8"
}
您提供的响应标头包含以下内容,它们会将您的请求结果缓存30天
Cache-Control: max-age=2592000
Expires: Thu, 21 Apr 2016 07:30:43 GMT
这两个标头在本质上是等效的,您可以单独使用它们中的任何一个,但是请注意,如果同时使用它们,则max-age具有更高的优先级。
如果您的目标是实现缓存和正确的资源重新验证,那么我建议您使用以下标头:
Cache-Control: max-age=0, must-revalidate
ETag: 'some generated value based on the content'
在这种情况下,浏览器将始终发送请求以检查ETag值,并且如果ETag已更改,则服务器将发送新内容,如果未更改,则服务器将以状态代码:304未修改进行响应
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句