2017-05-31 83 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

相關問題