2012-01-06 19 views
6

私は自分のdjango環境でしばらくの間開発してきましたが、現在はmanage.py runserverを使用していますが、デザイナーとフロントエンドの開発者がいますプロジェクトに取り組む必要があるため、自分たちの環境のベストプラクティスが何であるかについて迷っています。デザイナーの開発環境用にDjango/Apacheをセットアップする方法

私はPython環境をセットアップするように頼むことができましたが、Pythonの人ではなく、Windowsを実行しているので非常に多くのことを求めています(私の開発者と本番環境はどちらもLinuxです)。

代わりに、私はそれらをローカルサーバにマウントできるリモートサーバに設定しました。しかし、この設定では、実際にmanage.py runserver ip:portという別のインスタンスをscreenインスタンスで実行しています。 (我々のデザイナーにとって共通の)定数の再ロードのようなものは扱わず、devサーバのシングルスレッドの性質のために時折ハングします。私はApacheでこれを設定する方法を知りたいです。

もちろんこの問題はstaticfilesです。前述の関係者のいずれかが静的ファイルを追加または変更したい場合は、manage.py collectstaticを実行する必要があります。これは実用的ではありません。私はちょうどそれを行う他の方法を知っていません。私がApacheを使用して見つけたドキュメンテーションは、すべて実稼働環境のためのものです。だからこそ私がここにいるのです。

+0

デザイナーが静的ファイルとテンプレートのみを変更している場合は、なぜdjangoがリロードされますか? – second

+0

良い質問です。彼女が 'svn up'を実行するたびに起こりますが、それは1つのリロードだけになります。正直言って、私はなぜ 'runserver'がハングアップしているのか分からず、応答が止まるので数日おきに再起動する必要があるだけです。 –

+0

django-devserverを試すことができます。これはrunserver(実際にrunserverを置き換えます)のように動作しますが、デフォルトのrunserverとは異なり、複数のスレッドで実行されます。少なくとももっと安定しているかもしれない。 –

答えて

0

この回答はであり、回答した人を混乱させてしまったことを謝ります。基本的に私が望んだのは、screenセッションで./manage.py runserver ip:portよりも安定した環境でデザイナーの開発環境をホストする方法でした。私はApacheのためにこれを設定する方法がなければならないと考えましたが、それが何であるか分かりませんでした。ここで

は私が動作するようになったものです:あなたsettings.py

相対URLにごSTATIC_URLMEDIA_URL変数を設定します。私の場合は、/static//media/を使用しました。

MEDIA_ROOT = PROJECT_ROOT + "/htdocs/media/" 
MEDIA_URL = "/media/" 
SERVE_STATIC = True 
STATIC_ROOT = PROJECT_ROOT + "/htdocs/public/" 
STATIC_URL = "/static/" 

静的ファイルがまったくない場合と同じようにApacheを設定します。言い換えれば、ブロックにSetHandler Noneを使用するようにドキュメントの推奨事項を無視してください。

<VirtualHost *:80> 

    WSGIScriptReloading On 
    WSGIDaemonProcess someprocessname 
    WSGIProcessGroup somegroupname 
    WSGIApplicationGroup somegroupname 
    WSGIPassAuthorization On 

    WSGIScriptAlias//path/to/config.wsgi 

    ServerName somewhere.awesome.ca 

    <Location "/"> 
     Order Allow,Deny 
     Allow from all 
    </Location> 

    ErrorLog /var/log/apache2/somewhere.awesome.ca.err 
    CustomLog /var/log/apache2/somewhere.awesome.ca.log combined 

</VirtualHost> 

でのPythonを通じてstaticfilesを提供するためのDjangoのHOWTOに従わなければなりません。

0

ソースコントロール?彼らに変更をチェックインさせて、collectstaticへのポスト・コミット・フックを設定し、サーバーを再始動させてください。素敵なウィンドウズのGUIでは、私は基本的な概念を理解できなかったデザイナーを経験したことがありません。 dcvsを使用している場合は、自分のフォークにいつでも置くことができるので、間違って他のものを壊すのを防ぐためにメインリポジトリにマージする必要があります。

+0

どちらもSubversionコマンド(cliとgui)に非常に慣れていますが、CSSの色を変更するだけでコミットする必要はありません。それは遅く、ログをすばらしい変化で埋めるでしょう。私は 'runserver'がもたらすマージ効果を再現できるApache設定を探していました。 –

+0

あなたはmod_wsgiまたはfast_cgiを使って考えましたか?実行中のスクリプトファイルに触れると、サーバが再読み込みされます – tkone

関連する問題