1

/WEB-INF/cfclasses の下にテンプレートキャッシュを作成せずに静的テキストファイルを含めるための解決策または代替の ColdFusion タグはありますか?

問題は、時間の経過とともに動的ページが成長していることです。各ページには、1 つの静的ファイルを含める必要があります。

例えば

<cfinclude template="mapping/static_1.txt> for page 1
<cfinclude template="mapping/static_2.txt> for page 2
<cfinclude template="mapping/static_3.txt> for page 3
....etc.

ページ数が 2000 ページに増えているため、システムがサーバーの制限を超える 2000 のキャッシュ テンプレートを生成するため、サーバーがダウンします。

ホスティング サポートに制限を延長するよう依頼することはできますが、それは時間の経過とともに成長する動的ページの長期的な解決策にはなりません。

明らかに、含めるファイルは静的 HTML タグを含む静的テキスト (.txt) であるため (スクリプトは関与しません)、計算は必要ありません。

<cfinclude >バイナリ計算とキャッシュの作成なしでファイルの内容を表示する以外に、代替タグはありますか?

または、サーバーが .txt ファイルをキャッシュしないようにする解決策はありますか?

単純かもしれない質問で申し訳ありませんが、私はここで CF を初めて使用します。あなたのポインタは本当に感謝しています.

乾杯シャノン


私のホスティング サポートは、キャッシュをまとめて無効にすることを推奨していません。

<cffile>とにかく、代わりに を使用して簡単な解決策を思いつきました<cfinclude>

サーバーを使用する場合<cffile>は、各行を実行せずにキャッシュを作成します。代わりに、ファイルのチャック全体を取得して、変数に入れます。

4

2 に答える 2

5

それらが静的な HTML ファイルである場合、なぜ CFINCLUDE を使用するのですか? たとえば、FileRead() (または FileOpen/FileReadLine/FileIsEOF を使用した長いバージョン) を使用するか、action="read" を使用した CFFILE を使用します。

<cfset variables.content = FileRead("mapping/static_1.txt")>
<cfoutput>
    #variables.content#
</cfoutput>

処理する CFML/CFScript がない場合、CFINCLUDE を使用しても意味がありません。

于 2012-08-29T06:58:32.147 に答える
3

コンパイルされたクラス ファイルをキャッシュする必要はまったくありません。CFAdmin には、このキャッシュをオフにする設定があります ([キャッシュ] ページ: [クラス ファイルの保存])。これらのキャッシュされたファイルは、サーバーの起動時にのみ実際にメリットがあります。最初にアクセスしたときにファイルが再コンパイルされるのを防ぎます。このオーバーヘッドはごくわずかです。CFMX6 & 7 の時代にはかなりのものでしたが、それ以降はそれほどでもありません。

私の知る限り、コンパイルされたクラスが保存されているファイルを選択する方法はありません。それはすべてまたは何もありません。

できることは、設定をオンにし、すべてのアプリの「メイン」ファイルをコンパイルしてクラスが保存されるようにしてから、設定をオフにすることです。ただし、アプリケーションに新しいファイルを追加するたびに、このプロセスを繰り返す必要があります。それでも:それはそれほど難しいことではありません。

しかし、最近では、これらのファイルを保存しても何のメリットもありません。

于 2012-08-29T06:11:45.857 に答える