node.js - nodejs 的sails 框架如何修改ejs的后缀为html
迷茫
迷茫 2017-04-17 16:03:33
0
2
711
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(2)
伊谢尔伦

해결책 발견

템플릿의 접미사를 html으로 변경했을 때 페이지에 액세스할 때 오류가 보고되었습니다. 접미사 구성이 잘못된 것이 분명했습니다.

으아아아

Could not render view 코드를 검색해서 추가 노드view를 찾았습니다. 이때 전문 검색을 하기 위해 defaultEngine라는 키워드를 찾아 위치를 찾았습니다.

으아아아

위 코드에 따르면, default Engine의 구성에서 view engine을 얻었다는 의미입니다. 그럼 계속해서 검색해 볼까요 view engine. 다음 코드를 찾으세요:

으아아아

위 코드를 보면 view engine이 실제로는 sails.config.view.engine.ext의 구성이며 구성 파일 경로와 동일하다는 것을 알 수 있습니다.

으아아아

이때 이 코드에 중단점을 넣습니다

으아아아

그런데 놀라운 일이 일어났습니다

으아아아

해당 구성인 것 같은데, 이 파일을 열어보니 engine 내부가 이렇게

정의되어 있었습니다. 으아아아

이런! , 상황은 무엇이며 형식이 잘못된 이유는 무엇입니까? 나는 그것이 json 문자열일 것이라고 생각했습니다.

그런 다음 대담하게 조정하세요

으아아아

올바른 구성 변경을 위해 다시 내보내기

으아아아

이때, 자신감있게 다시 시작하고 페이지를 새로고침했는데 또 오류가 발견되었습니다! ! ! ! 뭐야

으아아아

오류 보고서가 변경되어 지금 수정한 내용이 확실히 효과적임을 나타냅니다. 그러다 이때 헤더 접미사 이름을 다시 ejs로 변경했더니 프런트 엔드 페이지가 정상적으로 나오는 것을 확인했습니다. 이 header 파일을 불러오면 접미사 이름이 프로그램에 쓰여지는 것 같습니다.

남은 과정은 어디가 문제인지 파악하고, 오류 리포트 실행 순서에 따라 어디가 문제인지 알아내는 것!

으아아아

위 코드를 찾아보니 경로 변수에 문제가 있어서 찾을 수 없는 것을 발견했습니다. namefilename

을 인쇄해 보겠습니다. 으아아아

이번에 방법을 찾았습니다resolveInclude

으아아아

보세요, 이 장소가 접합되었다는 뜻이지만 extname가 비어 있을 때만 접합된다는 뜻입니다. 즉, 여기서 name는 전달될 때 접미사 이름을 포함하지 않는다는 뜻입니다! ! ! !

이것을 보고 기본적으로 layout.html 템플릿에서 include 명령이 header

을 로드하는 데 사용된다는 것을 이해했습니다. 으아아아

그래서 여기 headerheader.html로 변경하고 다시 방문하시면 정상적으로 됩니다.

伊谢尔伦

그렇다면 네이티브 HTML로 직접 작성할 수 있는 jade 템플릿을 사용해 보는 것은 어떨까요

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿