0

Apache で mod python をセットアップしたところ、簡単なスクリプトを動作させようとしていますが、ページをロードするとすべての html がプレーン テキストとして公開されます。これは mod_python.publisher の問題だと思いました。ハンドラーも設定しました。ソースを検索したところ、「text/plain」と「text/html」を区別する行が見つかり、スクリプトで「出力しているファイルの最後の100文字を検索するので、それを入れました。それでもうまくいきませんでした。パブリッシャーがすべてを「text/html」として設定するように、コードの一部をコメントアウトしようとしましたが、ページを更新しても同じことが起こりました。多分私は何か間違った設定をしました。

これが httpd.conf の私の設定です

< Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On
< /Directory >

4

1 に答える 1

3

構成は問題ないようです。基本的に同じ設定で mod_python.publisher スクリプトが動作しています。

他のいくつかの考え:

  • パブリッシャーのソース コードを編集しようとしたときに、Web サーバーを再起動しましたか? サーバーが最初に起動されたときに、Python ライブラリを 1 回だけロードします。

  • パブリッシャーの自動検出は、HTML の終了タグ </html> を探します。それはあなたが追加したものですか?(あなたの質問には表示されませんが、投稿したときに削除された可能性があります。)

  • 他に何も機能しない場合は、いつでもコンテンツ タイプを明示的に設定できます。これはより多くのコードですが、一貫して動作することが保証されています。リクエストの content_type フィールドを「text/html」に設定します。

たとえば、スクリプトが現在次のようになっているとします。

def index(req, an_arg='default'):
    return some_html

それは次のようになります。

def index(req, an_arg='default'):
    req.content_type = 'text/html'
    return some_html
于 2008-12-07T16:15:26.787 に答える