Thymeleaf与Reactjs的冲突Build
问题描述:
我正在使用ReactJs作为前端和Spring引导作为后端的项目。我想从后端将一些环境变量传递给ReactJS应用程序。我的想法如下:Thymeleaf与Reactjs的冲突Build
1)使用create-react-app生成存根ReactJs应用程序。在公共index.html文件,定义一个定制的标签
<body>
<script th:inline="javascript">
/*<![CDATA[*/
var env = [[${env}]];
/*]]>*/
</script>
...
<div id="root"></div>
</body>
2)运行npm run build
产生
3)复制生成的代码从构建目录前端代码为“资源/模板”目录
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
有什么办法可以解决这个问题,或者我需要采取另一种方法?
答
由于我还不能评论:下面是你如何参考Thymeleaf2模型中的变量。
<script th:inline="javascript">
/*<![CDATA[*/
var env = /*[[${env}]]*/ '';
/*]]>*/
</script>
感谢您的建议,我尝试了新的语法,但得到了相同的结果。 –
属性值“env”仅在运行时才会在编译时填充。您可能需要默认值或传递系统变量作为npm参数 –