我目前需要使用Spring Boot来提供我的React应用程序.它适用于根URL - localhost:8080/但当然没有子路由被Spring Controller识别.
我不确定如何在没有硬编码的情况下将React Routing和Spring请求映射排成一行,以便映射到每个可能的路由index.html- 然后一些路由具有可变的子路由.
这是我的HomeController服务index.html
@Controller
public class HomeController {
@RequestMapping(value = "/")
public String index() {
return "index.html";
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的React App中的路由渲染
const Root = ({ store }) => (
<Provider store={store}>
<Router history={browserHistory}>
<Route path="/" component={App}>
<IndexRedirect to="users"/>
<Route path="/org" component={OrgSearch}>
{<Route path="/org/:orgId" component={Org}/>}
</Route>
<Route path="/users" component={UserSearch}>
{<Route path="/users/:userId" component={User} />}
</Route>
</Route>
</Router>
</Provider>
)
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏!
编辑:我尝试添加一些通配符功能,它呈现出一些奇怪的行为.这是更新的代码HomeController.
@Controller
public class HomeController {
@RequestMapping(value = …Run Code Online (Sandbox Code Playgroud) 我试图将 Angular2 快速入门代码合并到我当前的 webpack 构建中,似乎有些东西正在覆盖引发zone.js此错误的承诺。根据我见过的大多数 stackoverflow 帖子,该zone.js文件需要在任何可能包含承诺的文件之后加载。
我假设正在发生的事情是在 webpack 加载其余文件之前加载了<src>带有zone.js文件标签的 html node_module。
有什么想法或建议吗?
这是package.json我正在使用的。
{
"name": "site-pinger",
"version": "1.0.0",
"description": "",
"scripts": {
"build:watch": "webpack --colors --progress --watch",
"build": "webpack --colors --progress",
"start": "webpack-dev-server --progress --colors --hot --inline --port 3000"
},
"author": "",
"license": "ISC",
"standard": {
"parser": "babel-eslint"
},
"babel": {
"presets": [
"latest",
"stage-0"
]
},
"devDependencies": {
"@types/jasmine": "2.5.36",
"@types/node": "^6.0.46",
"babel-core": "^6.17.0",
"babel-eslint": "^7.0.0",
"babel-loader": …Run Code Online (Sandbox Code Playgroud) angular ×1
javascript ×1
react-router ×1
reactjs ×1
spring ×1
spring-boot ×1
typescript ×1
webpack ×1