2012-02-10 4 views
0

私はcoldfusionでのキャッシュに慣れていませんが、私のウェブサイトでは想定されていないsomethnigを行っているようです。 インデックスページが1つしかありません。大きなswitch文を使用して、どのcfmファイルを含めるかを決定し、自分のWebサイトのページを構築します。すべて正常に動作するわけではありません。存在しないページにアクセスしようとすると、ホームページに戻るという既定のケースもあります。ColdFusionアプリケーションはswitch文をキャッシュします

私は新しいページを作成してそのページに移動しようとしますが、その前にcfcaseを追加する必要があることを忘れて、デフォルトのケースに進みます。必要なcfcaseを作成すると、それはうまくいくはずですが、前回のリダイレクト、スイッチ/ケースでのパスがキャッシュされているので、デフォルトのケースを取得します。コードから脱落事例を取り除いても、それはまだそこに行きます。

私のスイッチ/ケースのキャッシュを停止するようにcoldfusionに指示します。コンテンツの残りの部分chachedすることができる、何の問題もなく、スイッチ/例だけではないパスが...

編集1 は、ここに私のコードです:

<html> 
    <head> 
    </head> 
    <body> 
     <cfswitch expression="#attributes.fuseaction#"> 
      <cfcase value="home"> 
       <cfinclude template="dsp_home.cfm" /> 
      </cfcase> 
      <cfcase value="admin"> 
       <cfinclude template="admin/dsp_login.cfm" /> 
      </cfcase> 
      <cfdefaultcase> 
       <cf_goto fuseaction="home"> 
      </cfdefaultcase> 
     </cfswitch> 
    </body> 
</html> 

attributes.fuseactionはその変数であります要求されたページのURLに格納されます(例:http://www.domain.com/index.cfm/fuseaction/#switch/case-variable#)。 cf_gotoは、301コードを与え、その変数がホームになっている指定されたページにリダイレクトするカスタムタグです。

私が上記で説明したことを行うと、ヘッダーは301エラーコードを返し、デフォルトのケースページにリダイレクトします。だから私はここにキャッシュされているものを失っている。

+1

アプリケーションまたはセッションのスコープに何かを設定していない限り、キャッシュされないようです。コードを投稿できますか? – duncan

+1

あなたのページをキャッシュするブラウザではないと確信していますか?ブラウザで強制的に更新するとどうなりますか? – ale

答えて

2

CFはスイッチ/ケースロジックをキャッシュしないため、問題が実際に何であっても解決するためには、それを目の当たりにしています。

CFAdminで「信頼できるキャッシュ」を有効にしていますか?その場合は、CFMファイルが要求時に再コンパイルされ、変更が有効になるようにクリアする必要があります。

失敗:Duncanの提案に従って、コードを確認する必要があります。

+0

元の投稿に自分のコードを追加しました。私はすでにキャッシュをオフにしていると信じています。 – dreagan

+0

私はAdamと同じことをやります - CFはこれをキャッシュしません。属性の前にcfabortを使用して、属性の値が確実であると確信している場合はどうでしょうか。また、値を入力するスペースを探します。あなたの値がadmin(スペース)の場合、 "admin"のケースは実行されません。 –