2012-04-10 12 views
1

私はキャッシュのWebページに$this->output->cache(n)を使用していますが、私はそれが動作しませんどのように把握することはできません..私はsystem/cacheフォルダの下に任意のキャッシュファイルを見つけられませんでした...と私はページを編集して、もう一度それを示した後も、コンテンツ変更するので、ページは実際にキャッシュされていないようです。誰でも助けてもらえますか?私のコードは (私はフィルのテンプレートのlibを使用しています):codeigniter出力キャッシュが機能しませんか?

function show(){ 

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

    $this->load->model('page_model'); 
    $var = $this->uri->segment(3, 0); //get About page 
    $row = $this->page_model->getPage($var); 
    $this->template->title('about') 
        ->set_layout('default') 
        ->set_partial('styles', 'css') 
        ->set('data', $row->body) 
        ->build('about'); 

} 

感謝を!

答えて

3

2つのこと、as outlined in the documentation

警告:viewであなたのコントローラの表示を生成している場合ので、出力のためのコンテンツの方法CodeIgniterの店のは、キャッシュのみ動作します。おそらく、「ネイティブ」ビューを使用していない

は問題ありか?さらに

注:キャッシュファイルを書き込むことができます前に、あなたはそれが書き込み可能であるように、アプリケーション/キャッシュフォルダ上のファイルのアクセス権を設定する必要があります。

あなたのapplication/cacheディレクトリが正しい権限を持っていますか?

+1

+1であるになりますか? – Philip

+0

こんにちはコリンとフィリップ、お返事ありがとう!しかし、このキャッシュ方法を使用する他の方法はありますか?私はテンプレートを取り除くことができないようだから、私はサイトを構築するためにそれを使用する必要があります...また、どのように許可を変更するには?私はシステムの下にキャッシュフォルダを見つけることができませんが、アプリケーションの下にキャッシュフォルダがあります...申し訳ありませんが、私はCI – Mario

+0

を新しくしています@マリオ:あなたの最後の質問については、それは私の間違いでした。ディレクトリは実際に 'application/cache'です。 CIビューを使用せずにCIのキャッシュメソッドを動作させる方法については、[Outputクラス](http://codeigniter.com/user_guide/libraries/output.html)の「Under the Hood」を見て、findそれがどのように機能し、必要に応じて拡張します。 –

0

デバッグこのファイルとそれが実際にキャッシュを書いていますチェック: システム/コア/ Output.php

// Do we need to write a cache file? Only if the controller does not have its 
// own _output() method and we are not dealing with a cache file, which we 
// can determine by the existence of the $CI object above 
if ($this->cache_expiration > 0 && isset($CI) && ! method_exists($CI, '_output')) 
{ 
    $this->_write_cache($output); 
} 

これは私のためによく働く:

function _output($content) { 
     // Load the base template with output content available as $content 
     $data['content'] = &$content; 

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

     $output = $this->load->view('base', $data, true); 

     $this->output->_write_cache($output); 

     echo $output; 
    } 
0

あなたは必ずあなたのアプリケーション/キャッシュですディレクトリに正しいパーミッションがありますか? cPanelの内のディレクトリアプリケーション/キャッシュへ

あなたは、パーミッションは777にはおそらく、「ネイティブ」ビューを使用していないことは問題であるOK

関連する問題