質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

2767閲覧

[Django][heroku]STATICFILES_STORAGE設定に関して

tskz

総合スコア6

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/10/18 08:56

編集2017/10/18 09:07

###前提・実現したいこと
heroku本番環境での静的ファイル(css)の適用(django)

###発生している問題・エラーメッセージ
whitenoiseを使用して静的ファイルを本番公開しようと考えているのですが、STATICFILES_STORAGEを設定すると500エラーが出てstaticファイルが読み込まれずcssが適用されません。

アプリケーション自体はテスト環境or DEBUG=TRUEの状態だと本番反映されます。

###該当のソースコード
settings.py

INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'whitenoise.runserver_nostatic', 'django.contrib.staticfiles', 'blog', ] MIDDLEWARE = [ 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_ROOT = 'staticfiles' STATIC_URL = '/static/' STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' # STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), )

urls.py

django

1from django.conf.urls import include, url 2from django.contrib import admin 3 4urlpatterns = [ 5 url(r'^admin/', include(admin.site.urls)), 6 url(r'',include('blog.urls')), 7]

wsgi.py

django

1import os 2from django.core.wsgi import get_wsgi_application 3from whitenoise.django import DjangoWhiteNoise 4 5os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") 6application = get_wsgi_application() 7application = DjangoWhiteNoise(application)
. ├── Procfile ├── blog │   ├── __init__.py │   ├── __pycache__ │   ├── admin.py │   ├── apps.py │   ├── migrations │   ├── models.py │   ├── templates │   ├── tests.py │   ├── urls.py │   └── views.py ├── db.sqlite3 ├── manage.py ├── mysite │   ├── __init__.py │   ├── __pycache__ │   ├── local_settings.py │   ├── settings.py │   ├── urls.py │   └── wsgi.py ├── myvenv │   ├── bin │   ├── include │   ├── lib │   ├── pip-selfcheck.json │   └── pyvenv.cfg ├── requirements.txt ├── runtime.txt ├── static │   ├── basic.css │   ├── css │   ├── fonts │   └── js └── staticfiles ├── admin ├── basic.90276afd9b2b.css ├── basic.90276afd9b2b.css.gz ├── basic.css ├── basic.css.gz ├── css ├── fonts ├── js └── staticfiles.json

###試したこと

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
Django==1.11
python-3.6.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

acre_maker

2017/10/18 22:41

manage.py collectstatic は実行しましたか?
tell_k

2017/11/22 17:27

500エラーであれば、 heroku logs --tail で何かしらエラーが出ていると思うのでそれを確認してみてください。
tskz

2017/11/27 09:49

こちら原因判明いたしました。whitenoiseライブラリー自体はうまく動いているのですが、STATICFILES_STORAGEでwhitenoiseを指定するとエラーが発生していました。なのでstatic、mediaファイル両方をS3に移すことで解決できました。ご返信くださった皆様ありがとうございました!
tskz

2017/11/27 09:51

staticファイル自体はS3に移さずとも挙動しましたが、管理画面上で画像をアップしたかったので以上のような対応となりました。
guest

回答1

0

whitenoiseのバージョンを下げてみてはいかがでしょうか?

参考 qiita DjangoアプリをHerokuにデプロイする時のエラー対処 whitenoise編

投稿2019/11/20 07:35

ak_suzuki

総合スコア194

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問