이번에는 저번 DRF 난중일기에 이어 추가적인 사항을 몇개 더 정리하였다.
DRF를 Heroku에 올린후 따로 설정을 하지 않으면 이미지나 CSS 같은 static 파일에 오류가 생겨 페이지가 매우 초라해진다. 이때 다음과 같은 설정을 해주자.
setings.py
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
그리고 한가지 더 중요한 점은 다음과 같은 명령어를 쳐주는 것이다.
python manage.py collectstatic
여기서 만약 오류가 난다면, staticfiles 이나 static 폴더를 미리 만들어 놓고 다시 한 번 명령어를 쳐보면 된다.
DRF에서 media 파일을 저장/서빙 하기 위해서는 다음과 같이 설정해준다.
setings.py
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
urls.py
urlpatterns = [
path('api-auth/', include('rest_framework.urls')),
path('', include(router.urls)),
path('auth/', include('accounts.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
하지만 위의 설정만 하면 파일이 저장은 되지만 서빙이 되지 않는다.
답은 간단하다. 디버그 모드를 켜주자.
이거 하나 때문에....
setings.py
DEBUG = True