본문 바로가기
Programming/Python & Django

[Django] static debug 문제

by mingule 2020. 2. 13.

# 문제점

요즘 장고로 간단한 웹 개발을 하고 있는데, 

어제 pythonanywhere로 배포를 했다.

마지막에 Debug False로 해두고 뭔가를 바꾸어서 올리려 했는데 갑자기 css가 불러와지지 않았다.ㅠㅠ

css 경로 그런거 아무것도 안만졌는데!!!!! (사실 내가 뭐 잘못 눌러서 에러뜨는 줄 알고 멀쩡한 코드만 눈빠져라 봤다아아아악)

 

결론은 아래와 같은 에러가 떠서

because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

 

찾아봤는데 stackoverflow에는 계속 내가 경로설정을 잘못했다고 했다.....(경로건드린거없는데^ ^^..)

어쨌든 1시간동안 찾았는데도 답이 안나와서 내가 건드린게 무엇이있었나 곰곰히 따져봤다.

그래서 Debug False로 바꾼게 생각나서 True라고 했더니 다시 css가 잘 먹는다 ^__^ 세상,,

# 문제점 해결

여러 사이트를 돌고 문제를 해결하려고 찾아봤다.

먼저 Django에서 배포하려면 Debug = False 로 두는 것이 좋다고 한다.

Django 내에 Static file들을 넣는 것이 아니라, 웹서버가 Static file들을 제공하는 것이 바람직하다는 것이다.

 

내가 생각했을 때 Django 로컬에서 서버를 돌릴 때에는 보안 이슈(?)가 따로 없고 실제 배포할 때에는 Debug True로 두고 배포해버리면 사용자가 static file 등에 쉽게 접근해버리니까 보안 이슈가 생겨서 Debug False로 두고 배포하는 게 좋다고 하는 것 같다.(?) 그래서 실제 배포 시에는 Static File들을 아예 웹서버에서 제공해버려서 보안이슈가 생기지 않도록..? 흑흑 뭔가 아닌 것 같기도 하고.. 혹시 아니면 누군가 태클 걸어주세요... 끙 ㅠ 

# 결론

urls.py

from django.conf import settings
from django.conf.urls import url
from django.views.static import serve

urlpatterns += url(r'^static/(?P<path>.*)', serve, kwargs={'insecure': True})

terminal

python3 manage.py runserver --insecure

 

이걸 해주면 Debug False에서도 잘 돌아간다.

(어쨌든) 해결해서 기분 좋으아요

 

나는 내가 이틀동안 갈아 만든 CSS가 날아간 줄 알고 굉장히 ^___^ 우울했었다. . . . ㅎㅅㅎ

결론은 잘 돌아간당!

댓글