2011-08-02 6 views
0

media私のDjangoアプリでファイル(ユーザーがアップロードしたファイル)にアクセスしようとすると、「愚かな」エラー以外のエラーが発生することはありません。理由は何ですか?mediaファイル!Django開発サーバー上でApache経由でメディアファイルを配信しますか?

この例では、たとえば、アップロードした画像を前面に表示できるようにするだけです。私のアップは、/static/で静的ファイルを正しく処理しますが、私が/site_media/ファイルを提供しようとすると、地獄が壊れてしまいます!私は何が間違っていますか?

実際にDjangoが実際にメディアファイルを扱うように作られていないことを実感した後、プロダクションで推奨されているように、推奨のmod_pythonオプションでApacheを使うことに決めました。しかし、私は以前これをやったことはありませんし、これが開発サーバー上で問題になるかどうか疑問に思っています。

最終的に私は生産に行くときにこの道を進む必要があると知っているので、これを行う方法はまだ分かっていますが、開発サーバー上のこのルートの長所と短所は何ですか?

答えて

0

djangoはメディアを処理することなく要求をより速く処理するので、確かにプロです。

メディアを編集する場合、メディアをリフレッシュするには、そのメディアを編集しなおす必要があります。あなたのコメントに基づいて

更新:

あなたがコース簡単にそれを行うことができます。私はこれを練習する簡単な方法の1つは、nginxを使ってnginxのサイトにメディアフォルダをシンボリックリンクさせ、ポート80(または他のもの)でnginxを実行することです。

設定でMEDIA_URLを設定し、適切なポートでurlを指定します。

+0

これは可能ですか、いいえ、質問はどうすればよいですか? Djangoと同じポート上にあるファイルをApacheにも提供しますか?とにかく 'mod_python'を使いたくない、単にApacheがメディアを扱うようにしたかったのですが、残りはDjangoに任せました。任意のヒントやポインター?ありがとう – nemesisfixx

0

まず、mod_pythonはではなく、が推奨されています。実際には、に対してが特に推奨されています。代わりにmod_wsgiを使用してください。

第2に、設定のコードや詳細を指定していないため、devサーバ経由で静的メディアを提供するときに間違っていることを伝える方法がありません。

最後に、Apacheを使用することはできません。また、nginxなどの軽量サーバーを使用することもできません。また、静的ディレクトリだけを参照する必要はありません。次に、settings.pyのSTATIC_URLをそのサーバがサービスするアドレスに設定します。あなたが開発中のときは、それがどのポートにあるかは違いありません。

関連する問題