0

www.mysite.com/mysiteの下のapache/mod_wsgiから提供されているdjangoアプリケーションがあります

URL "myapp"-> myapp/urls.pyをリダイレクトするとします

したがって、apacheからアクセスするには、www.mysite.com / mysite / myapp / page1にアクセスして、開発
サーバーからアクセスします。www.mysite.com/ myapp/page1にアクセスする必要があります。

また、どちらの場合も絶対URLが異なることを意味します

では、アプリがapacheとdevサーバーで同じように機能するように、これを処理するための最良の方法は何ですか?

4

1 に答える 1

0
  1. コードまたはデータベースに絶対URLや計算されていないURLを埋め込まないでください。彼らはいつも戻ってきて、お尻にあなたを噛みます。

  2. 別のsettings.pyを使用するか、settings.pyにロジックを追加して、開発/ステージング/本番環境の違いを微調整します。実稼働ファイルとしてsettings.pyを使用し、dev / stagingはsettings.pyでテストされるlocal_settings.pyを使用し、存在する場合は、settings.pyの実稼働設定をオーバーライドします。これにより、代替の開発設定がステージング/本番環境に忍び寄るのを防ぎます。

  3. サイト全体にBASE_URLを設定し、それ以外のすべてに使用します。

  4. もう少し進んで、他のもののベースURLとしてSTATIC_MEDIA_URLとBIG_CONTENT_URL(MP3とFlashビデオの場合)を使用します。

これらすべてにより、現時点で適切なサーバーを使用できます。私が開発をしているとき、私は通常MEDIAを本番サーバーから取得させます(より高速です)が、時々メディアディレクトリの再編成を行っており、世界を壊さずに本番でそれを行うことはできません。したがって、ディレクトリのコピーを使用するようにlocal_settings.pyファイルを変更するだけです。

于 2009-11-10T20:03:12.727 に答える