2017-05-23 4 views
0

にサービスを提供する場合、私はHerokuのにウェブサイトを展開しようとしていますし、私はホワイトノイズといくつかのトラブルに実行されているとするときDEBUG = Falseのメディアにサービスを提供しています。HerokuのI/Oエラーメディアファイル

DEBUGがオンになっているときにサイトを稼働させましたが、Whitenoiseを追加した後にサーバーがスローし、I/Oエラーが表示されてDEBUGがオンになっていることがわかりました。

私の静的ファイルは、私が「メディア」に保存されている知っている画像が含まれているフロントページをロードしようとすると、私はこれが

IOError at/
[Errno 2] No such file or directory: u'/app/{appname}/media/{picture}.png' 

あり得る

STATIC_ROOT = os.path.join(BASE_DIR, 'static') 
STATIC_URL = '/static/' 

STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR, '../pages/static'), 
] 

MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 
MEDIA_URL = '/media/' 

として設定されています最初に私がHerokuと展開したアプリとDjangoで書いた最初のウェブサイトなので、それがどういう仕組みであるかをまだ理解しようとしています。私は、私が開発中に持っていた静的なファイル設定にWhitenoiseミドルウェアを加えることができるはずだと思っていました。それはかなりうまくいくはずですが、明らかに何か間違っています。

+0

'python manage.py collectstatic'を実行しましたか? – doru

+0

はい、あります。私の静的ファイルはすべて、管理ページからアップロードされた静的ディレクトリまたはメディアディレクトリにあります。 –

答えて

0

私はそれを理解しました。 WhiteNoiseは、ドキュメントに記載されている数行を追加するだけで簡単ですが、私の問題は、静的なファイルの格納と配布について、作業してからその行を追加するまでに変更を加えたことです。

それは、静的およびメディアファイルを提供することができますので、最後に、私は、AWS S3と一緒に行きました。私はホストを設定し、私の地域を含める必要があったので、そこには1トンの問題がありましたが、それはすべて解決されました。

0

が、これはHerokuのローカルまたは展開し、サイト上での実行時に取得しているエラーですか?

ローカルサイトを実行するときにこれが起こっている場合は、staticfilesが異なっ提供しています。これはDjango docsからである:開発時

あなたがdjango.contrib.staticfilesを使用する場合はDEBUGがTrueに設定されている場合、これは()(django.contrib.staticfiles.views.serveを参照)のrunserverによって自動的に行われます。

この方法はひどく非効率的かつおそらく安全ではないので、生産には不向きです。

したがって、デバッグがFalseの場合、settings.pyをリモート静的ファイルにリンクする必要があります。これには少しの研究が必要かもしれませんが、デバッグを真に設定するほうが簡単です。私はそのようにのみオフにデバッグとエラーの原因となった不正なファイルの場所、としての私のテンプレート内の障害のある静的なタグ、からのこの種のエラーを持っていた展開Herokuのサイトの代わりに

+0

デプロイされたサイトでのみ発生し、私はあなたがあなたのウェブサイトに関する機密情報を明らかにすることができるので、私はデバッグを真のままにしておく必要がないようにホワイトニングを使うことを望んでいました。私は静的なタグを見ていきますが、私はwhitenoiseが私に多かれ少なかれ同じものを保つことができるという印象を受けていました。 –

+0

私の最初の答えは、herokuのローカルWebコマンドを使用していた展開されたサイトのデバッグをオフにしておいてください。とにかく展開の問題を理解したようです。 – Tom

関連する問題