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> 
+0

感谢您的建议,我尝试了新的语法,但得到了相同的结果。 –

+0

属性值“env”仅在运行时才会在编译时填充。您可能需要默认值或传递系统变量作为npm参数 –