2017-03-19 20 views
0

私のウェブサイトを作成してメディアはうまくいきましたが、運用中の静的ファイルは正常ですが、メディアファイルは機能しません。ユーザーが新しい投稿を作成するときは、サムネイルを置く必要があります。また、django-summernoteを使ってテキストエディタを使って投稿に写真を追加することもできます。とにかくサーバーのメディアルートにアップロードする必要がありますが、そうではありません。それはちょうど私の500サーバーエラーを与え、エディタでは、画像をアップロードするエラーを得た私にDjangoで画像をアップロードすると、デジタルオーシャンでの制作に失敗する

を与える:添付ファイル

私urls.py

if settings.DEBUG: 
urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT) 
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

と私の保存に失敗しましたsettings.py

STATIC_URL = '/static/' 
    STATIC_ROOT = '/var/www/static-root/' 
    STATICFILES_DIRS = [ 
os.path.join(BASE_DIR, "static"), 
    # '/var/www/static/', 
] 
MEDIA_URL = '/media/' 
MEDIA_ROOT = '/var/www/media-root/' 

私は自分のメディアと静的別のサーバーで なぜですか?スタティックはうまく動作しますが、メディアは動作しません。

私はDjangoコードにDebianを使用しています。

+1

ユーザーを確認してください。 '/ var/www/media-root/'を書く権限がないかもしれません。 – mdegis

+0

開発中にローカル以外のstatic()を使って静的ファイルやメディアファイルを提供しないでください。 'STATIC_ROOT'と 'MEDIA_ROOT'ディレクトリを提供するようにWebサーバを設定します。 –

+0

@AndreyShipilovどうすればいいですか?これは初心者の方です。この申し訳ありません、ありがとうございます。 – Lujain

答えて

0

あなたのnginxの構成サーバーのファイルに追加する必要があるので、あなたは、あなたがどこ/メディア/ファイルの検索を指示する必要がありnginxのを使用している場合:

location /media/ { 
    autoindex on; 
    alias /var/www/media-root/; 
} 

はまた、私が使用することを好むだけMEDIA_ROOT = os.path.join(BASE_DIR, 'media')へ私のプロジェクトフォルダの中にメディアファイルを持っています。あなたの方法では、フォルダを作成し、許可を与える必要がありますmkdir /var/www/media-rootchmod -R ug+rw /var/www/media-root

+0

私はこの2つのエイリアス/メディア/ var/www/media-rootを使用しています。 すべてを許可する必要があります しかし、それでも私にはサーバエラー – Lujain

+0

が似ていますが、代わりにchown -R www-data/var/www/media-root というコマンドを使用しました。 – Lujain

関連する問題