작성
·
544
2
안녕하세요. DDT 설치에 문제가 있어서 질문드립니다.
DDT를 설치하고 서버를 돌렸을때 표시가 되지 않고,
브라우저 개발자도구 콘솔에서
Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "text/plain". Strict MIME type checking is enforced for module scripts per HTML spec.
라는 에러가 발생합니다.
말씀해주신대로 레지스트리 편집기에 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.js 경로를 확인해보았으나, Content Type 항목이 없었고,
HKEY_CLASSES_ROOT\.js 경로에 Content Type 항목을 삭제하였습니다.
그 결과 import mimetypes; print(mimetypes.guess_type('toolbar.js'));를 다시 수행하면
('application/json', None) 라고 출력됩니다.
하지만 여전히 DDT는 보이지 않고 개발자도구 콘솔에서 같은 에러가 발생합니다.
제가 구글링해서 몇가지 방법을 따라해봤지만, 검색능력이 부족한지 해결하지 못했습니다.
혹시 방법을 아신다면 알려주시면 감사하겠습니다!
답변 2
0
장고 서버는 그대로 두고 다른 터미널에 conda activate 후에 python manage.py shell 로 print(mimetypes.guess_type('toolbar.js'))를 실행했습니다.
현재는 Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of "application/json". Strict MIME type checking is enforced for module scripts per HTML spec. 라고 출력이 됩니다.
장고 서버는 껏다가 다시 python manage.py runserver로 실행시켜보았는데 바뀌지 않습니다.. 컴퓨터도 재부팅해보았는데 아직 해결은 못했습니다 ㅠㅠ
0
장고 개발서버 프로세스는 그대로 두고, 별도 터미널에서 mimetypes을 확인하신 것인지요?
현 장고 프로세스가 바뀐 레지스트리 내용을 다시 반영 못 한 건 아닐까 싶습니다.
장고 개발서버를 껐다가 다시 켜보시거나, 리부팅을 해보시면 어떤가요?
지금 살펴보니, .js 확장자에 대해서는 application/json이 아니라 application/javascript 가 되어야, 크롬 브라우저에서 수용을 하네요.
터미널에서 application/json 이 나오시니까, 레지스트리 편집기에서 삭제했던 Content Type 문자열 값으로 application/javascript를 지정하시고, mimetypes 값을 확인하셔서 application/javascript가 나오는 지 확인해보시구요. 나온다면 장고 서버를 재시작해주시고.
이제 브라우저에서 확인해보시는 데, 아마도 toolbar.js 요청이 브라우저 캐싱이 되어서 application/json 으로 에러가 뜰 수 있습니다. 크롬 브라우저에서 강력새로고침을 해서 확인해주세요. 크롬의 강력새로고침은 크롬 개발자 도구를 띄우신 뒤에, 새로고침 아이콘을 우클릭하시면 메뉴가 나옵니다.
확인해보시고, 결과를 부탁드립니다. :-)