ReactJs를 프론트 엔드로 사용하고 Spring 부트를 백엔드로 사용하는 프로젝트 작업 중입니다. 백엔드에서 ReactJS 앱에 몇 가지 환경 변수를 전달하고 싶습니다. 제 아이디어는 다음과 같습니다 :Thymeleaf가 Reactjs 빌드와 충돌합니다.
1) 스텁 ReactJs 응용 프로그램을 생성하려면 create-react-app을 사용하십시오. 공개 된 index.html 파일에서을 "자원/템플릿"디렉토리 사용자 정의 태그
<body>
<script th:inline="javascript">
/*<![CDATA[*/
var env = [[${env}]];
/*]]>*/
</script>
...
<div id="root"></div>
</body>
2) 복사 빌드 디렉토리에서 코드를 생성
3) 프론트 엔드 코드를 생성 할 수 npm run build
을 실행을 정의
NPM 빌드 할 때 4) 백엔드의 컨트롤러에서 환경 값
@GetMapping(value = "/")
public String messages(Model model) {
model.addAttribute("env", System.getenv("env");
return "index";
}
을 설정하지만 2 단계에서 실패, 오류가 발생했습니다 메시지
Template execution failed: ReferenceError: env is not defined
이 문제를 해결할 수있는 방법이 있습니까? 아니면 다른 접근 방법을 취해야합니까?
귀하의 조언에 감사드립니다. 새로운 구문으로 시도했지만 동일한 결과가 나타납니다. –
속성 값 "env"는 컴파일 타임이 아닌 런타임시에만 채워집니다. 값을 기본값으로 설정하거나 시스템 변수를 npm args로 전달해야 할 수도 있습니다 –