2012-04-02 10 views
1

私はapache2でmod_wsgiを実行しています。 Djangoを実行していて何らかの理由でコードを変更した後、古いコードが新しいコードと共に表示されることがあります。古いコードを表示するmod_wsgi

たとえば、単に「Hi」というHttp Responseを返すビューを作成した後、Djangoの開始ページまたは「Hi」のいずれかが表示されます。

何が原因でしょうか?

ありがとうございました。

答えて

2

apache2/mod_wsgiは、リクエストの間にロードされたアプリケーションの一部を保持します。コードの更新後にサーバーを再起動する必要があります。

+1

特定の読み取り「http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode」です。埋め込みモードに優先してデーモンモードを使用し、変更後にWSGIスクリプトファイルに触れると、アプリケーション全体でコードがリロードされます。 –

+0

ありがとう! mod_pythonの代わりにmod_wsgiを使うのは今回が初めてです。 – Temuz

+1

@Temuz、GrzegorzBiały'sははるかに優れており、おそらく受け入れられるはずです。 – aaronasterling

0

これは、サーバーからの応答をキャッシュするブラウザーである可能性があります。キャッシングを無効にして、それが何らかの影響を受けるかどうかを確認してください。たとえそれが今ではないとしても、そうすることで将来的に多くの悲しみと混乱を避けることができます。

0

.pycファイルをコードベースディレクトリから削除し、サーバーを再起動します。

+0

pythonがソースコードの変更をチェックするので、 '.pyc'ファイルを削除する必要はありませんでした。 – aaronasterling

5

@aaronasterlingによると、mod_wsgiはコードをロードしたままにしますが、変更後にApacheを再起動する必要はありません。もっと便利な方法は、例えば、CLIからWSGIファイルをタッチする。:

$ touch django.wsgi 
+0

+1チップ – aaronasterling

+0

+1ありがとうございますが、これはmod_wsgiがデーモンモードで実行されている場合にのみ機能します –

関連する問題