Codeigniter - 缓存 - 服务器?

3
在Codeigniter中没有缓存问题的几年后,我发现了一个问题。我在其他地方看到了这个问题的描述,但是没有解决方案能够让我成功。如果我例如更改视图中的一些纯html文本,并上传新文件并按下键,则会显示旧的缓存文件。然后,如果我按下,就会显示新的内容,并且再次按下键就会返回旧的缓存文件。我尝试手动刷新浏览器缓存,但是没有效果。经过几分钟后,旧的缓存文件被新文件替换。这个问题给我的登录和注销带来了麻烦。我已经将以下代码放置在登录和注销控制器中,但没有成功。
$this->output->cache(0);            
$this->output->set_header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT');
$this->output->set_header('Cache-Control: no-store, no-cache, max-age=0, must-revalidate, post-check=0, pre-check=0');
$this->output->set_header('Pragma: no-cache');
$this->output->set_header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

我在任何控制器中都没有激活输出缓存($this->output->cache(n)),也没有一个缓存文件夹(application/cache 或 system/cache/(beore 2.0.0)),或者在配置文件中使用 db 缓存(['cache_on'] = FALSE)
我使用的是: Codeigniter 2.0.0 Firefox 21.0
我认为缓存文件存储在 Linux 服务器上的某个地方,但我不知道在哪里和如何清除。
任何帮助或指向正确方向的指导都可以。谢谢!
最好的问候, 马丁

你有检查HTML文件以确保它们被正确设置并且日期正确吗? - Jeemusu
谢谢您的回复。实际上,我不知道该如何检查HTML文件的正确日期。是最后修改的日期吗?再次感谢。 - Martin Overgaard
如果您使用Firefox浏览器,您可以使用Firebug插件来检查页面的HTML源代码。(右键检查) - Jeemusu
谢谢。我已经安装了Firebug并进行了检查。我需要在哪里寻找,需要注意什么?- 对我来说,HTML文件中的所有内容看起来都很好。 - Martin Overgaard
点击Firebug中的网络选项卡。刷新页面,然后从列表中选择您的页面(通常是最顶部的项目),并单击右侧的标题选项卡。在那里,您可以看到为您的页面提供的缓存标头。 - Jeemusu
@Jeemusu。太完美了——网络选项卡为我打开了一个全新的世界。非常感谢您的帮助。通过检查和阅读问题编号:11745368I,我解决了这个问题。 - Martin Overgaard
1个回答

1
缓存文件在过期之前不会被删除。缓存文件保存在application/cache文件夹中,您可以手动从那里删除它。
此外,您可以通过添加缓存助手或将输出类扩展为清除页面缓存来更好地管理缓存(以编程方式)。

在我的配置文件中,我已经设置:$config['cache_path'] = '';而且我既没有application/cache也没有system/cache文件夹。 - Martin Overgaard
感谢您的建议。因为文件夹不存在,所以我无法删除它们。据我所知,缓存助手和通过清除页面缓存扩展输出类将查找我没有的文件夹。或者我错了吗?感谢任何帮助。 - Martin Overgaard
是的,它会尝试从那里删除文件。你没有缓存文件夹有点奇怪。查看你的 config 文件,看看你的 $config['cache_path'] 是否已更改。 - sakibmoon
谢谢。Config['cache_path']没有被更改,它保持为空白,默认指向application/cache。 - Martin Overgaard
谢谢。我通过检查以下问题编号11745368I解决了这个问题。 - Martin Overgaard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接