我已经尝试了所有方法,但是我的media
文件夹个人资料图片图像仍然没有出现。他们在网页上看起来像这样。
我正在使用运行ASGI服务器的Digital Ocean(因为我正在使用channels
)来生产Django 2.1应用程序。
我的media
文件夹位于我的根文件夹(与manage.py
相同的级别)中。
给出的错误是
xx.xxx.xxx.xx:xxxxx - - [23/Feb/2019:17:23:49] "GET /media/profile_pics/avril.jpg" 404 77
但这是正确的路径,图像位于此处。我所有的static
文件都可以正常渲染。
我的settings.py
ASGI_APPLICATION ='sobr.routing.application'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'appname/static'),
)
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [os.environ.get('REDIS_URL', 'redis://xx.xxx.xxx.xx:8080')],
},
},
}
urls.py
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
nginx上游
location /static/ {
root /home/user/appname/src/appname;
}
location /media/ {
alias /home/user/appname/src/appname/media;
}
回溯
2019-02-24 18:42:02,932 WARNING Not Found: /media/profile_pics/girl.jpg
2019-02-24 18:42:02,934 WARNING Not Found: /media/profile_pics/avril.jpg
2019-02-24 18:42:02,933 WARNING Not Found: /media/profile_pics/man.jpg
xx.141.198.14:59401 - - [24/Feb/2019:18:42:03] "GET /media/profile_pics/brad_2G59aPW.jpg" 404 77
xx.141.198.14:59400 - - [24/Feb/2019:18:42:03] "GET /media/profile_pics/girl.jpg" 404 77
xx.141.198.14:59402 - - [24/Feb/2019:18:42:03] "GET /media/profile_pics/avril.jpg" 404 77
xx.141.198.14:59399 - - [24/Feb/2019:18:42:03] "GET /media/profile_pics/man.jpg" 404 77
xx.141.198.14:59404 - - [24/Feb/2019:18:42:03] "GET /static/fonts/PermanentMarker-Regular.ttf" 304 -
xx.141.198.14:59405 - - [24/Feb/2019:18:42:03] "GET /static/fonts/SourceSansPro-Light.ttf" 304 -
xx.141.198.14:59401 - - [24/Feb/2019:18:42:03] "GET /static/fonts/Poppins-SemiBold.ttf" 304 -
答案 0 :(得分:0)
您是否正确设置了服务器?请检查您的nginx上游媒体文件,如下所示。
server {
listen 80;
............
location /static/ {
alias /home/project/staticfiles/;
}
location /media/ {
alias /home/project/media/;
}
.........
}