[英]Spring Boot + React
我正在尝试实现非常简单的CRUD应用程序,它将是一个只有几个Rest Controller的单页应用程序。
我在实现过程中遇到的问题是,即使我用React JS编写的脚本是使用webpack成功构建的,并注入到静态页面“ index.html”中,也不显示内容。
内容正确显示的情况:
如果不是:
这是我的HomeController,负责映射到“ /”下的静态页面
@Controller
public class HomeController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String welcome() {
return "index";
}
}
这是我的index.html页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="description" content=""/>
<meta name="author" content=""/>
<title>React</title>
<!-- Bootstrap Core CSS -->
<link
href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.6/
cerulean/bootstrap.min.css" rel="stylesheet"/>
<!-- Custom Fonts -->
<link href="font-awesome/css/font-awesome.min.css" rel="stylesheet"
type="text/css"/>
<link href="http://fonts.googleapis.com/css?
family=Source+Sans+Pro:300,400,700,300italic,400italic,700italic"
rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="react"></div>
<script src="../static/built/bundle.js"></script>
</body>
</html>
可能最后有用的最后一件事是app.js :
import React from "react";
import ReactDOM from "react-dom";
import { Router, Route, IndexRoute, hashHistory } from "react-router";
import Archives from "./pages/Archives";
import Featured from "./pages/Featured";
import Layout from "./pages/Layout";
import Settings from "./pages/Settings";
const app = document.getElementById('react');
ReactDOM.render(
<Router history={hashHistory}>
<Route path="/" component={Layout}>
<IndexRoute component={Featured}/>
<Route path="archives(/:article)" name="archives" component={Archives}/>
<Route path="settings" name="settings" component={Settings}/>
</Route>
</Router>,
app);
首先,我想这可能是在路由器和控制器中使用相同URL的问题,但更改它们后仍无法解决问题。 所以我没有任何想法。
使用Spring Boot提供的默认值时, bundle.js
在bundle.js
的路径中包含/static/
。
在index.html
将脚本标签更新为:
<script src="/built/bundle.js"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.