2011-01-02 16 views
1

テンプレートからの私のJavaスクリプトと静的イメージファイルを参照すると、それらは開発中に表示されますが、本番サーバからは表示されません。開発から、私はそのようにアクセスします。djangoアプリケーションでの静的メディアの提供

<img src="/my_proj/media/css/images/collapsed.png" /> 

が、生産から、私はプロジェクトのディレクトリを削除する必要があります。

<img src="/media/css/images/collapsed.png" /> 

私は静的なサービス提供に関して、何か間違ったことをやっていると仮定していますメディア。

私は、Djangoで静的メディアを提供するためのいくつかの外見上異なるオプションの間に挟まれています。一方では、私はdjango-staticfilesを使ってメディアを提供することが推奨されています。もう1つは、ドキュメントにSTATIC_ROOT and STATIC_URLの参照があります(本番環境での使用に関する警告があります)。

私のjQueryスクリプトのいくつかで使用する "プラス"と "マイナス"の小さな.pngファイルがあります。さらに、スクリプトそのものを参照する必要があります。

1)スクリプトとサイトイメージを静的メディアとして正しく分類していますか?
2)プロダクションからこのメディアにアクセスする最も良い方法は何ですか?

答えて

3

URLをそのままハードコードしないでください。

devバージョンのDjangoを実行している場合は、check this docです。

簡潔にするために、{{MEDIA_URL}}を使用して、devとプロダクションの設定でその変数を設定することができます。

<img src="{{ MEDIA_URL }}/media/css..." /> 

あなたはRequestContextの、see more here on docs herehereを使用する必要があります覚えておいてください。

また、すべての静的ファイルを適切なウェブサーバーから直接サーバーする必要があります。これを行うには、apacheまたはnginxを設定することができます。

1

本番環境で静的なメディアを提供する方法は1つしかありません。それはWebサーバー(Apacheなど)にそれを実行させることです。 Django-staticfilesは開発のためのものであり、これはドキュメント全体で明確に述べられています。

関連する問題