业精于勤,荒于嬉;行成于思,毁于随。
템플릿의 접미사를 html으로 변경했을 때 페이지에 액세스할 때 오류가 보고되었습니다. 접미사 구성이 잘못된 것이 분명했습니다.
html
Could not render view 코드를 검색해서 추가 노드view를 찾았습니다. 이때 전문 검색을 하기 위해 defaultEngine라는 키워드를 찾아 위치를 찾았습니다.
Could not render view
view
defaultEngine
위 코드에 따르면, default Engine의 구성에서 view engine을 얻었다는 의미입니다. 그럼 계속해서 검색해 볼까요 view engine. 다음 코드를 찾으세요:
default Engine
view engine
위 코드를 보면 view engine이 실제로는 sails.config.view.engine.ext의 구성이며 구성 파일 경로와 동일하다는 것을 알 수 있습니다.
sails.config.view.engine.ext
이때 이 코드에 중단점을 넣습니다
그런데 놀라운 일이 일어났습니다
해당 구성인 것 같은데, 이 파일을 열어보니 engine 내부가 이렇게
engine
이런! , 상황은 무엇이며 형식이 잘못된 이유는 무엇입니까? 나는 그것이 json 문자열일 것이라고 생각했습니다.
그런 다음 대담하게 조정하세요
올바른 구성 변경을 위해 다시 내보내기
이때, 자신감있게 다시 시작하고 페이지를 새로고침했는데 또 오류가 발견되었습니다! ! ! ! 뭐야
오류 보고서가 변경되어 지금 수정한 내용이 확실히 효과적임을 나타냅니다. 그러다 이때 헤더 접미사 이름을 다시 ejs로 변경했더니 프런트 엔드 페이지가 정상적으로 나오는 것을 확인했습니다. 이 header 파일을 불러오면 접미사 이름이 프로그램에 쓰여지는 것 같습니다.
ejs
header
남은 과정은 어디가 문제인지 파악하고, 오류 리포트 실행 순서에 따라 어디가 문제인지 알아내는 것!
위 코드를 찾아보니 경로 변수에 문제가 있어서 찾을 수 없는 것을 발견했습니다. name 및 filename
name
filename
이번에 방법을 찾았습니다resolveInclude
resolveInclude
보세요, 이 장소가 접합되었다는 뜻이지만 extname가 비어 있을 때만 접합된다는 뜻입니다. 즉, 여기서 name는 전달될 때 접미사 이름을 포함하지 않는다는 뜻입니다! ! ! !
extname
이것을 보고 기본적으로 layout.html 템플릿에서 include 명령이 header
layout.html
include
그래서 여기 header를 header.html로 변경하고 다시 방문하시면 정상적으로 됩니다.
header.html
그렇다면 네이티브 HTML로 직접 작성할 수 있는 jade 템플릿을 사용해 보는 것은 어떨까요
해결책 발견
템플릿의 접미사를
으아아아html
으로 변경했을 때 페이지에 액세스할 때 오류가 보고되었습니다. 접미사 구성이 잘못된 것이 분명했습니다.
으아아아Could not render view
코드를 검색해서 추가 노드view
를 찾았습니다. 이때 전문 검색을 하기 위해defaultEngine
라는 키워드를 찾아 위치를 찾았습니다.위 코드에 따르면,
으아아아default Engine
의 구성에서view engine
을 얻었다는 의미입니다. 그럼 계속해서 검색해 볼까요view engine
. 다음 코드를 찾으세요:위 코드를 보면
으아아아view engine
이 실제로는sails.config.view.engine.ext
의 구성이며 구성 파일 경로와 동일하다는 것을 알 수 있습니다.이때 이 코드에 중단점을 넣습니다
으아아아그런데 놀라운 일이 일어났습니다
으아아아해당 구성인 것 같은데, 이 파일을 열어보니
정의되어 있었습니다. 으아아아engine
내부가 이렇게이런! , 상황은 무엇이며 형식이 잘못된 이유는 무엇입니까? 나는 그것이 json 문자열일 것이라고 생각했습니다.
그런 다음 대담하게 조정하세요
으아아아올바른 구성 변경을 위해 다시 내보내기
으아아아이때, 자신감있게 다시 시작하고 페이지를 새로고침했는데 또 오류가 발견되었습니다! ! ! ! 뭐야
으아아아오류 보고서가 변경되어 지금 수정한 내용이 확실히 효과적임을 나타냅니다. 그러다 이때 헤더 접미사 이름을 다시
ejs
로 변경했더니 프런트 엔드 페이지가 정상적으로 나오는 것을 확인했습니다. 이header
파일을 불러오면 접미사 이름이 프로그램에 쓰여지는 것 같습니다.남은 과정은 어디가 문제인지 파악하고, 오류 리포트 실행 순서에 따라 어디가 문제인지 알아내는 것!
으아아아위 코드를 찾아보니 경로 변수에 문제가 있어서 찾을 수 없는 것을 발견했습니다.
을 인쇄해 보겠습니다. 으아아아name
및filename
이번에 방법을 찾았습니다
으아아아resolveInclude
보세요, 이 장소가 접합되었다는 뜻이지만
extname
가 비어 있을 때만 접합된다는 뜻입니다. 즉, 여기서name
는 전달될 때 접미사 이름을 포함하지 않는다는 뜻입니다! ! ! !이것을 보고 기본적으로
을 로드하는 데 사용된다는 것을 이해했습니다. 으아아아layout.html
템플릿에서include
명령이header
그래서 여기
header
를header.html
로 변경하고 다시 방문하시면 정상적으로 됩니다.그렇다면 네이티브 HTML로 직접 작성할 수 있는 jade 템플릿을 사용해 보는 것은 어떨까요