2

Application.cfmファイルではなくファイルを使用して構築された従来のアプリで作業していApplication.cfcます。

リクエストが処理された後にコードを実行できる必要があります。<cfhtmlhead>(基本的に、タグを使用して、読み込まれたすべてのドキュメントにいくつかの Javascript および CSS ファイルを挿入したいと考えています。以前は、GreaseMonkey ユーザー スクリプトを使用してこれを行っていましたが、サーバー側のものが最適でした。)

私が読んだことから、関数でこれを行うことができるはずだと思いますが、ファイルonRequestEnd()に関して参照されていることしか見たことがありません。ファイルをファイルと同じディレクトリに置いて関数に登録Application.cfcできることを読みましたが、システムは1つのファイルにマップしません(つまり、このファイルを多くのディレクトリにスローする必要があります)。onRequestEnd.cfmApplication.cfmonRequestEnd()Application.cfmonRequestEnd.cfm

セットアップonRequestEnd()を使用してこの関数を登録する他の方法はありますか? Application.cfm問題が発生した場合に備えて、Coldfusion 9 を実行しています。

4

2 に答える 2

8

明確にするために、このonRequestEnd()方法はファイルを利用している場合にのみ使用できApplication.cfcます。

このファイルは、ColdFusion が自動的にファイルを検索し、見つかったときにその内容を処理するという点でOnRequestEnd.cfm、ファイルと同じように実際に機能します。アプリケーションに Application.cfc ファイルがある場合は、OnRequestEnd.cfm ページを使用できないことにApplication.cfm注意してください。したがって、アプリケーション用のファイルがなく、ファイルのみを使用して いると仮定すると、ファイルは機能するはずです。ページ要求の後に実行する CFML コードをそのファイルに挿入するだけです。Application.cfcApplication.cfmOnRequestEnd.cfm

いくつかのファイルがさまざまなフォルダーに分散している場合、はい、それらのディレクトリにもファイルApplication.cfmをコピー/作成する必要があります。別の単一の場所から実際のコード以外のことを何もしないディレクトリ内のスタブOnRequestEnd.cfmファイルをコピーできる場合があります。少なくとも、すべてのスタブファイルを入手したら、コードを 1 か所で変更できます。 OnRequestEnd.cfmcfinclude

アプリケーションの構造化のドキュメントを参照してください(ColdFusion 8 用に書かれていますが、同じルールが適用されます)。そのページが削除された場合、関連するテキストは次のとおりです。

ColdFusion がアプリケーション定義ページを見つけて処理する方法

ColdFusion は、次の規則を使用して、アプリケーション固有の要素を定義する Application.cfc、Application.cfm、および OnRequestEnd.cfm ページを見つけて処理します。ColdFusion がこれらのファイルを検索する方法は、アプリケーションの構造を決定するのに役立ちます。

ColdFusion がページ リクエストを処理するたびに、次の処理が行われます。

  1. ColdFusion がリクエストの処理を開始すると、次の処理が行われます。

    • ページのディレクトリで Application.cfc という名前のファイルを検索します。存在する場合は、CFC の新しいインスタンスを作成し、初期イベントを処理して、検索を停止します。(ColdFusion は CFC の新しいインスタンスを作成し、リクエストごとにその初期化コードを処理します。)
    • 要求されたページのディレクトリに Application.cfc ファイルがない場合、ディレクトリに Application.cfm ファイルがないかチェックします。存在する場合、ColdFusion は要求されたページの先頭に Application.cfm ページを論理的に含め、それ以上の検索を停止します。
    • 要求されたページのディレクトリに Application.cfc または Application.cfm ファイルがない場合、ColdFusion はディレクトリ ツリーを検索し、最初に各ディレクトリで Application.cfc ファイルをチェックし、見つからない場合は Application.cfm ページをチェックします。 、ルート ディレクトリ (C: など) に到達するまで。Application.cfc または Application.cfm ファイルが見つかると、ページを処理して検索を停止します。
  2. ColdFusion は、要求されたページのコンテンツを処理します。
  3. リクエストが終了すると、ColdFusion は次のことを行います。
    • Application.cfc がある場合、ColdFusion は CFC の onRequestEnd メソッドを処理し、CFC インスタンスを解放します。
    • Application.cfc はなく、Application.cfm ページはある場合、ColdFusion は、ColdFusion が現在のページに使用する Application.cfm ページと同じディレクトリで OnRequestEnd.cfm を探します。ColdFusion はそのディレクトリを超えて検索しないため、別のディレクトリにある OnRequestEnd.cfm ページを実行しません。また、アプリケーション ページでエラーや例外が発生した場合、またはアプリケーション ページで cfabort タグまたは cfexit タグが実行された場合、OnRequestEnd.cfm ページは実行されません。

次のルールは、ColdFusion がアプリケーション ページと設定を処理する方法を決定します。

  • ColdFusion は、リクエストごとに Application.cfc または Application.cfm ページを 1 つだけ処理します。ColdFusion ページに、追加の ColdFusion ページを指す cfinclude タグがある場合、ColdFusion は、追加のページが含まれている場合、Application.cfc または Application.cfm ページを検索しません。
  • ColdFusion ページに cfapplication タグがある場合、最初に Application.cfc または Application.cfm が処理され、次に cfapplication タグが処理されます。タグは、アプリケーション名や cfapplication タグ属性によって設定された動作など、アプリケーション ファイルの設定を上書きできます。
  • 同じアプリケーション名を使用する複数の Application.cfc ファイル、Application.cfm ファイル、および cfapplication タグを持つことができます。この場合、同じ名前を持つすべてのページは、同じアプリケーション設定と Application スコープを共有し、このスコープ内のすべての変数を設定および取得できます。セッション タイムアウトなどの設定がファイル間で異なる場合、ColdFusion は cfapplication タグまたは最後に処理されたファイルのパラメータ設定を使用します。

注:大文字と小文字が区別される UNIX プラットフォームでアプリケーションを実行する場合は、Application.cfc、Application.cfm、および OnRequestEnd.cfm を大文字で綴る必要があります。

于 2013-03-15T15:37:45.527 に答える
0

ColdFusion 9 を使用しているため、OnRequestEnd.cfm ファイルをプラグインする方法を見つけようとする代わりに、Application.cfc を使用するようにアップグレードするのはかなり簡単です。さらに、Application.cfc を Application.cfm に使用することには利点があります。

いくつかの参照:

http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=appFramework_15.html
http://forum.hostek.com/showthread.php?724-Converting-to-Application-cfc
http: //www.bennadel.com/blog/726-ColdFusion-Application-cfc-Tutorial-And-Application-cfc-Reference.htm

http://www.raymondcamden.com/index.cfm/2009/12/30/Best -of-CF9-Applicationcfc-Script-Template
http://cfruss.blogspot.com/2009/11/applicationcfc-reference-in-cfscript.html

于 2013-03-18T18:59:13.683 に答える