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

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

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

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

Heroku

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

Python

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

6495閲覧

HerokuにDjangoアプリケーションをデプロイしたがstaticファイルが読み込まれない

thorn

総合スコア21

Django

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

Heroku

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

Python

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/12/28 13:14

編集2016/12/28 13:31

###前提・実現したいこと
herokuでのcssの適用(django)

###発生している問題・エラーメッセージ
djangoで作成したアプリケーションをherokuにデプロイしたのですがstaticファイルが読み込まれずcssが適用されません。
アプリケーション自体はheroku上で機能しています。

このページなどを参考にsetting.pyとwsgi.pyを編集し、再びデプロイし、ページを開くと500が返ってきてしまいます。

heroku run python manage.py collectstatic --noinput 実行時

FileNotFoundError: [Errno 2] No such file or directory: '/app/myapp/static'

###該当のソースコード
以下500が返ってきます
settings.py

django

1import os 2 3BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 4 5PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 6 7STATIC_ROOT = os.path.join(PROJECT_ROOT,'staticfiles') 8 9STATIC_URL = '/static/' 10 11STATICFILES_DIRS = ( 12 os.path.join(PROJECT_ROOT, "static"), 13) 14STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'

wsgi.py

django

1 2import os 3from django.core.wsgi import get_wsgi_application 4 5from whitenoise.django import DjangoWhiteNoise 6 7os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings") 8 9application = get_wsgi_application() 10 11application = DjangoWhiteNoise(application)

urls.py

django

1 2urlpatterns = [ 3 4 url(r'^admin/', admin.site.urls), 5 url(r'^myapp/', include('myapp.urls')), 6]

ディレクトリ構造

myapp/ ├app/ ├static/ └ app/ └ css

###補足情報(言語/FW/ツール等のバージョンなど)
python-3.6
django-1.10.4

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは。staticfileのpath指定が間違ってると思うんですが、設定がややこしくて自分もあまり自信ないです。なにかしらヒントになれば…

python

1STATICFILES_DIRS = ( 2 os.path.join(BASE_DIR, "static"), 3)

でお試しでやってみてどうでしょうか?

参考にDjangoGirlsJpでの設定を以下に記載します。

Python

1INSTALLED_APPS = [ 2 'django.contrib.admin', 3 'django.contrib.auth', 4 'django.contrib.contenttypes', 5 'django.contrib.sessions', 6 'django.contrib.messages', 7 'django.contrib.staticfiles', 8# 略 9] 10 11# 中略 12STATIC_URL = '/static/' 13STATIC_ROOT = 'staticfiles' 14STATICFILES_DIRS = ( 15 os.path.join(BASE_DIR, "static"), 16)

投稿2017/01/04 18:00

uni8inu

総合スコア127

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

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

thorn

2017/01/10 08:33

解答ありがとうございます。settingのパスを指定しなおして「staticfiles」というディレクトリにcssファイルをcollectstaticすることができたのですが、やはりwhitenoiseの設定(STATICFILES_STORAGEとapplication = DjangoWhiteNoise(application))を追記してデプロイすると500エラーが返ってきてしまいます。 whitenoiseがどのような働きをしていて、どのように利用するのかいまいち理解できていないので教えていただけると幸いです。
thorn

2017/02/21 07:31

回答ありがとうございます。 whitenoiseの設定も一通り確認しましたが、{%static%}というテンプレートタグを使ってURLを生成すると500が返ってくるということが分かりました。 とりあえずはHTML内にcssを直接記述することにしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問