最近一直在使用cakephp,感覺挺不錯。不過這幾天在使用view cache的時候卻發現乙個問題:url帶查詢引數時總是不命中快取。檢視**後發現問題所在,原來在view中使用cachehelper類來處理快取,每次儲存快取時採用的檔案路徑是:
$cache = $cache . '.php';
return cache('views' . ds . $cache, $file, $timestamp); //$file和之後的引數不用管。
這段**節選自cachehelper中的cache函式
而在cake/bootstrap.php中,獲取快取檔案路徑的計算方法是:
$uri = seturi(); //這裡採用的是seturi(),與上面計算快取檔案路徑的方法是不一樣的
$filename=cache . 'views' . ds . convertslash($uri) . '.php';
這段**節選自cake/bootstrap.php
為了讓cake支援帶查詢引數url的快取,把cachehelper中cache函式計算快取檔案路徑的**作如下修改:
$cache = convertslash($this->here);
=>
$cache = str_replace("?","_",convertslash(seturi()));
把cake/bootstrap.php計算快取檔案路徑的**作如下修改:
$filename=cache . 'views' . ds . convertslash($uri) . '.php';
=>
$filename=cache . 'views' . ds . str_replace("?","_",convertslash($uri)) . '.php';
view cache其他設定方法不變,可以參考[url]
問乙個簡單的問題
問乙個簡單的問題 delphi windows sdk api 初學delphi 需要時間不明確的情況下 迴圈體次數不定 怎麼用乙個動畫來讓使用者知道程式還在執行 具體用什麼控制項,如何寫呢 謝謝 sf 你可以在迴圈開始之前將游標設定成漏斗狀,然後在結束時恢復原來的箭頭狀!怎麼寫呢?我想問一下滑鼠那...
問乙個簡單的問題
問乙個簡單的問題 delphi windows sdk api 初學delphi 需要時間不明確的情況下 迴圈體次數不定 怎麼用乙個動畫來讓使用者知道程式還在執行 具體用什麼控制項,如何寫呢 謝謝 sf你可以在迴圈開始之前將游標設定成漏斗狀,然後在結束時恢復原來的箭頭狀!怎麼寫呢?我想問一下滑鼠那個...
乙個effective java中的效率問題
package com.liuc public class autopackage long end system.currenttimemillis system.out.println end start 1000 執行時間19s 和下面這個程式 package com.liuc public ...