【问题标题】:CodeIgniter cache makes 2 files, one with errors and other right one - Why? What does this happen?CodeIgniter 缓存生成 2 个文件,一个有错误,另一个正确 - 为什么?这会发生什么?
【发布时间】:2017-06-01 01:52:07
【问题描述】:

我用 CodeIgniter 缓存了一个页面。它在缓存文件夹中创建了两个文件。一个正确的,就像它应该的那样。第二个有很多错误

Message: Trying to get property of non-object

Message: Undefined offset: 0

在我将数据发送到此视图的行中,例如

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

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

为什么?这是关于什么的? 为什么缓存会生成两个文件,一个坏一个好?

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

缓存文件:打印屏幕:Cache Files: PRINT SCREEN

这些名字是什么? 93f498562c1788597009057fb11067eb, ec09f491c06d849fa4be87aaaca3c489 ?为什么 ?我以为应该是controller_name+function_name,而不是……这样的? 像这样命名的文件,没有扩展名

【问题讨论】:

    标签: php codeigniter caching


    【解决方案1】:

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

    它们是您的 URI 的哈希 md5($uri);。所以它类似于控制器名称+函数名称,但采用散列格式。并且没有直接发送到浏览器,它们在发送之前被加载到 ci 控制器中。它没有必要给予延期。从您的屏幕截图中看不清楚,但请尝试更改
    $this->output->cache(0.1);

    这样的东西

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

    根据用户指南

    $this->output->cache($n);

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

    所以将 0.1 放在那里会使缓存仅有效 6 秒。如果您可以添加更多代码(不是屏幕截图),它可能对更准确的回答有用。

    【讨论】:

    • 您刚刚发布的代码与您的问题无关。我想你做了 2 个请求。这可能会导致在您的目录中产生 2 个缓存。基于 uri 缓存页面。假设您正在请求默认控制器(欢迎),您可以通过 2 种方式进行。 http://site.name/welcome/indexhttp://site.name/ 。在缓存时它们被认为是 2。所以会有 2 个缓存文件。所以请确保您没有发出 2 个请求
    • https://i.stack.imgur.com/WIcHp.png 这是所有代码。这是 Main.php,这是默认控制器。我的路线:$route['default_controller'] = 'Main'; $route['(:any)'] = 'Main'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE; 仅此而已。
    • 缓存文件夹 - 为空。只去index.php/przykladowy-tytul-strony - 生成2个缓存文件,一个坏一个好。删除,然后只转到 przykladowy-tytul-strony - 再次生成 2 个缓存文件。
    • 我现在发现,主控制器的 show_post 函数中的这一行可能会或不会产生第二个缓存 $this->load->view('post', array('post' => $post, 'comments' => $comments, 'previous_next' => $previous_next)); 如果我剪切它,只有 1 个文件,如果我将它添加回来 - 2 个缓存文件。这是关于什么的?
    • 大声笑老兄,我找到了生成第二个文件的内容,大声笑。视图中的这一行:<img src="data:image/png;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" data-src="test2.jpg" alt="Przyładowe zdj artykułu" class="width-img"/> 并且这个缓存文件中的 uri 字符串(我回显了它)是 test2.jpg 我不明白它......就像它为这个单个 .jpg 文件创建整个页面......什么?
    猜你喜欢
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多