2017-05-31 42 views
0

我用CodeIgniter缓存一页。它会在缓存文件夹中创建两个文件。一个是对的,就像它应该是的。而第二个有很多错误CodeIgniter缓存会生成2个文件,其中一个包含错误,另一个包含正确的文件 - 为什么?这发生了什么?

Message: Trying to get property of non-object

Message: Undefined offset: 0

在那里我得到的数据线发送这种观点就像

<?= $post[0]->data_dodania; ?>

在浏览器中我看到了正确对象,真爱。良好的缓存页面。没有任何错误。但在缓存文件夹中,我得到了这两个文件,好的一个和坏的一个到同一页面。

为什么?这是关于什么的? 为什么缓存生成两个文件,不好又好?

和控制器代码:PRINT SCREEN and code in Controller

缓存文件:PRINT SCREEN:Cache Files: PRINT SCREEN

什么是这些名字? 93f498562c1788597009057fb11067ebec09f491c06d849fa4be87aaaca3c489?为什么?我认为它应该是controller_name + function_name,不是...像这样的东西? 像这样没有扩展名的文件

回答

0

这些名字是什么? 93f498562c1788597009057fb11067eb,ec09f491c06d849fa4be87aaaca3c489?

它们是您的URI的散列md5($uri);。所以它与控制器名称+函数名称类似,但采用散列格式。并且没有直接发送给浏览器,它们在发送之前被加载到ci控制器中。它不需要延长。它不是从你的截图完全清楚,但尝试改变
$this->output->cache(0.1); 喜欢的东西

$this->output->cache(10); // for 10 minute caching

根据userguide

$这个 - >输出 - >缓存($ N);

其中$ n是分钟的数字您希望页面在刷新之间保持缓存。

所以把0.1放在那里使得缓存有效期只有6秒。如果你可以添加更多的代码(而不是截图),它可能对更准确的回答有用。

+0

其余的代码在这里:https://i.stack.imgur.com/LyjLQ.png :) –

+0

完全不知道为什么它使两个文件,不好和好的一个:/ –

+0

你刚刚发布的代码没有任何解决你的问题。我想你做了2个请求。这可能导致在您的目录中产生2个缓存。一个页面基于uri进行缓存。 假设您要求使用默认控制器(欢迎),您可以通过两种方式来完成。 'http:// site.name/welcome/index'和'http:// site.name /'。而缓存他们被认为是2.所以会有2个缓存文件。 所以请确保你没有提出2个请求 – Jayakrishnan

相关问题