基本的な学習用のブログアプリがあります:アプリの管理フォームからアップロードされた画像付きの「ブログ投稿」が別のバージョンをプッシュするまでうまくいきますheroku経由で。その後、画像に壊れたimgアイコンが表示され、画像アドレスを見たときの画像ターゲットが同じでも、アプリが画像を見つけることができません。Django + Heroku:次のプッシュまでの画像作業
私は何かについて根本的に重要な何かを見逃しているように感じます - なぜ私はこれをGoogleによって修正することができないのでしょうか?誰が私がここに足を踏み入れているのか知っていますか?私はこの権利に近づいていますか?
私は静的ファイルを提供するためにDjango + Gunicorn + dj-staticを使用しています。ここで
はモデルです:
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
picture = models.ImageField(upload_to='blog/static/blog/images')
section = models.ForeignKey('Section')
posted = models.DateTimeField(auto_now_add=True)
posted_by = models.TextField()
tags = models.ManyToManyField('Tag')
def __str__(self):
return self.title
ビュー:静的なファイルを扱う
<hr>
<img src="{{ picture.url }}">
<hr>
はsettings.py:
画像、HTMLを含むdef detail(request, post_id):
post = Post.objects.get(id=post_id)
picture = post.picture
context = {'post': post, 'picture': picture}
return render(request, 'blog/detail.html', context)
スニップ
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'
BOOTSTRAP3 = {'include_jquery': True}
LOGIN_URL = '/users/login'
MEDIA_ROOT = 'media'
MEDIA_URL = '/media/'
#Herokusettings
if os.getcwd() == '/app':
import dj_database_url
DATABASES = {
'default' : dj_database_url.config(default='postgres://localhost')
}
DEBUG = False
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
ALLOWED_HOSTS = ['*']
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
# Static files (CSS, JavaScript, Images)
# https://docs.djangoprojectcom/en/1.9/howto/static-files/
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media')
MEDIA_URL = '/media/'
# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static'),
)
とwsgi.py:
import os
from django.core.wsgi import get_wsgi_application
from dj_static import Cling, MediaCling
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "bss.settings")
application = Cling(get_wsgi_application())
application = Cling(MediaCling(get_wsgi_application()))
#application = get_wsgi_application()
は、私はこのすべてがどのように機能するかについての基本的な何かが欠けているように私は感じて、これに表情を与えていただき、ありがとうございます。
ありがとうございました!私はそれを調査します! – InspectorBean