ReactJsをフロントエンドとして使用し、バックエンドとしてSpringブートを使用するプロジェクトに取り組んでいます。私はバックエンドからReactJSアプリにいくつかの環境変数を渡したいと思います。私の考えは次のとおりです。ThymeleafとReactjsビルドとの競合
1)create-react-appを使用して、スタブReactJsアプリケーションを生成します。公共のindex.htmlファイルでは、「リソース/テンプレート」ディレクトリにカスタマイズされたタグ
<body>
<script th:inline="javascript">
/*<![CDATA[*/
var env = [[${env}]];
/*]]>*/
</script>
...
<div id="root"></div>
</body>
2)コピーがビルドディレクトリからコードを生成
3)フロントエンドのコードを生成するnpm run build
を実行を定義
4)バックエンドのコントローラでは、
@GetMapping(value = "/")
public String messages(Model model) {
model.addAttribute("env", System.getenv("env");
return "index";
}
環境値を設定する。しかし、NPMで構築しようと、私はエラーを得たとき、私は、ステップ2で失敗しましたメッセージ
Template execution failed: ReferenceError: env is not defined
この問題を回避する方法はありますか、別の方法が必要ですか?
私は新しい構文を試してみましたが、同じ結果が得られました。 –
属性値 "env"は、コンパイル時ではなく実行時に移入されます。値をデフォルトにするか、システム変数をnpm argsとして渡す必要があるかもしれません –