AdobeColdFusion(およびRailo)はCFMLテンプレートをJVMバイトコードにコンパイルし、そうするように構成されている場合は、コンパイルされたクラスを.classファイルとしてディスクに書き込みます。テンプレートキャッシュは、次のように言うためのメカニズムです。ターゲットクラスがすでにロードされている場合は、ディスク上の(ソース)ファイルをわざわざ調べて、再コンパイルが必要かどうかを確認しないでください。メモリ内にあるものを信頼してください。
ACFとRailoの最近の機能強化により、(ソース)ファイルを常に(信頼できない)チェックできるように指定できます。リクエストごとに1回、決して(常に信頼できる)チェックできません。
それは誰にとってもニュースではないはずです。
明らかに、ACFとRailoは、処理を求められた.cfmまたは.cfcファイルをコンパイルするため、有効になっている場合は、信頼できるキャッシュに「最終的に」保存されます。
ファイル(任意のファイル)をcfincludeすると、ACFとRailoもそれをJVMバイトコードにコンパイルします(そうするように構成されている場合は、ディスク上に.classファイルを作成します)。インクルードされたファイルはコンパイルされるため、信頼できるキャッシュにも「最終的に」保存されます。その場合、CSSファイルを含めるとどうなりますか?CSSファイルのコンテンツ全体を文字列として応答ストリームに出力するバイトコードにコンパイルされます。これはコンパイルされたクラスであり、ハードコードされた文字列を出力するため、CSSソースファイルを変更して信頼できるキャッシュを有効にすると、ACFとRailoはクラスローダーの内容を信頼し、再コンパイルしません(ソースが管理者であることを「決して」チェックしないと仮定します)。設定)。
これを確認するには、cfclassesフォルダーをクリーンアップし、CFMLエンジンを再起動して、コードを実行します。CSSファイルに.classファイルが表示されます(クラスファイルをディスクに保存できるようになっていると仮定します)。
したがって、cfincludeは「任意の」ファイルのコンパイルを強制し、信頼できるキャッシュの通常のルールがメモリにロードされたクラスに適用されます。
私はもうACFを使用していないので、.cfrファイルについて詳しく話すことはできません(Railoはレポートファイルをサポートしていません)が、ACFが.cfrファイルをコンパイルするかどうかに依存する可能性があります。簡単に確認できるはずです(cfclassesフォルダーを調べてください)。