我想去略深成Smarty的緩存,所以我有一些簡單的問題...Smarty的緩存文件無效
要操作緩存失效我想知道的是Smarty的存儲哪個目錄下的緩存例如,所有與
user_id=123
相關的緩存頁面我想存儲在cache/users/123/
。其中cache
是聰明的緩存目錄。我怎麼能告訴smarty存儲有關user_id=123
的緩存在cache/users/123/
? Smarty會將子模板的緩存存儲在這個目錄中嗎?有沒有關於在這個目錄中清理緩存的建議?我認爲,如果某些訪問者正在訪問此頁面,只是從該目錄中刪除文件可能會導致一些錯誤(如果smarty會看到找到了模板緩存,則可能會發生錯誤,但未找到子模板緩存,因爲它已被刪除,例如)。
任何建議和意見,讚賞。
謝謝。
感謝您的回答。有什麼方法可以設置緩存子目錄,而'$ smarty-> cache_dir'設置爲單個目錄('$ smarty-> cache_dir ='/ path/to/cache'')。我想,它會解決大量的問題。我知道如果'$ smarty-> use_sub_dirs = true',我們可以直接在cache_id('/ user/123 /')中定義緩存路徑,但Smarty也會將它自己的附加子目錄添加到我們的cache_id中,我們會得到類似於('/ user/123 /%12 /%23 /%45 /')的內容。你知道如何避免它嗎? – Kirzilla 2010-08-10 13:32:12
當您將其設置爲true時,您可以每次使用differen cache_id($ smarty-> fetch('file','cacheId')&$ smarty-> display('file','cacheId'))。 – Ronn0 2010-08-10 13:53:47
如果您啓用Smarty,Smarty可以進行這兩種緩存。您可以緩存編譯後的模板和最終輸出。 – djn 2010-08-10 16:21:06