0

.cfm 拡張リンクを (アウトバウンド規則を使用して) 書き換える簡単な書き換え規則を作成し、同等のインバウンド規則で完全な .cfm パスに解決します。例:

このアウトバウンドリンク:

http://mysite/section/page

次のフル パスに解決されます。

http://mysite/section/page.cfm

ファイル拡張子のないリンクにアクセスすると、どのブラウザーでも、ページは画面に表示されますが、ブラウザーはページの読み込みが完了するまで「待機」しているように見えます (ブラウザー タブで回転する円を取得すると、Firefox は「転送中」と表示します)。 mywebsite からのデータ...")

ページが読み込まれるまで約 5 分間「待機」した後、ブラウザは読み込みを停止し、「ページを表示できません」というエラーが表示されます。Firebug の NET パネルを使用して何が起こっているかを確認しましたが、基本的にページの読み込みが完了しません (ファイルのサイズは、ブラウザーがダウンするまで 0kb のままです)。

たとえば、完全修飾パス ページに移動するとhttp://mysite/section/page.cfm、ページは約 20 ミリ秒以内に完全に読み込まれ、Firebug はページのサイズを教えてくれます。

誰が何が起こっているのか、それを修正する方法を提案できますか?

4

1 に答える 1

5

OK、ある程度解決したか、実際に解決しました。

そのColdFusionの問題です。ここでこれに直面している場合、他の誰かがあなたがすることです:

  1. Application.cfc ページを作成します。
  2. この関数をコンポーネントに追加します。
<cffunction name="onRequestEnd">
    <cfheader name="Content-Length" value="#Len(getPageContext().getOut().getString())#" />
    <cfset getPageContext().flush()>
</cf関数>


ここで起こっていることは、Content-Length ヘッダーを正しいサイズに設定しているということです。ColdFusion に任せると、ColdFusion がめちゃくちゃになるからです。終わりのないページの読み込みを終了するgetPageContext().flush()ための解決策は、ブラウザーがすべてのページ コンテンツを取得できるように、Content-Length を設定した後に を配置することです。

率直に言って、私はいくつかの Google 検索とランダムなハッキングでそれを機能させました。問題に対処する正しい方法ではないかもしれませんが (Firebug では 500 エラーが発生していると表示されているため)、うまくいくようです。

于 2013-09-14T16:50:35.100 に答える