reactjs - React Js 和 Spring Boot
问题描述
我在一个项目中使用了 java 的 React 代码和 Spring boot 代码,我使用前端 maven 插件将其全部放置。
我的 pom.xml 的一部分
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.12.0</version>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<phase>generate-resources</phase>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
<execution>
<id>npm build</id>
<goals>
<goal>npm</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<environmentVariables>
<CI>true</CI>
</environmentVariables>
<arguments>run build</arguments>
</configuration>
</execution>
</executions>
<configuration>
<workingDirectory>frontend</workingDirectory>
<nodeVersion>v15.14.0</nodeVersion>
</configuration>
</plugin>
</plugins>
<finalName>A-nine-web</finalName>
<resources>
<resource>
<directory>${project.basedir}/frontend/build</directory>
<filtering>false</filtering>
<targetPath>public/</targetPath>
</resource>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>false</filtering>
</resource>
</resources>
</build>
当我在前端运行 npm start 时,当我点击我的 webapp 中的链接时,我可以看到所有的变化。
这是我的应用程序中导航栏的 React 代码,其中包含导航链接:
import {BrowserRouter as Router} from 'react-router-dom';
import { Route, Switch } from 'react-router';
import home from '../Home/home';
import Notification from '../Notifications/Notifications';
import WishList from '../WishList/WishList';
import Orders from '../Orders/Orders';
const TopBar = () =>{
const links = [
{
id:0,
Title:'Home',
url:'/home',
faClass:'fas fa-home'
}, {
id:1,
Title:'Notifications',
url:'/Notifications',
faClass:'fas fa-bell'
}, {
id:0,
Title:'My Orders',
url:'/Orders',
faClass:'fas fa-money-check'
}, {
id:0,
Title:'My Wishlist',
url:'/Wishlist',
faClass:'fas fa-hands'
}
];
return(
<Router>
<div className="TopBar">
<div id="drop-down">
<svg width="12px" height="12px" >
<path d="M 0 0 L6 6 L12 0 Z" style={{stroke:'#000',fill:'gray'}}/>
</svg>
</div>
<div id="search-bar">
<form>
<div className="search-area">
<input type="search" placeholder="Search Cakelight" />
<button type="submit">
<i className="fas fa-search"></i>
</button>
</div>
</form>
</div>
<div className="navigation">
{
links.map((link)=>(
<div className="navigation_item">
<i className={link.faClass}>i</i>
<ul>
<a href={link.url}>
<li key={link.id}>{link.Title}</li>
</a>
</ul>
</div>
))
}
</div>
<div className="acc-management">
<i class="fas fa-user-circle">i</i>
</div>
</div>
<div>
<Switch >
<Route exact path="/home" component={home}/>
<Route exact path="/Notifications" component={Notification}/>
<Route exact path="/WishList" component={WishList}/>
<Route exact path="/Orders" component={Orders}/>
</Switch>
</div>
</Router>
)
}
export default TopBar;
当我使用 npm start 运行前端时,所有链接都指向正确的路径,但是当我运行 maven 时,链接返回一个 whitelabel 错误页面。
请,如果有人有解决方案,请帮助我。我会很感激的。``
解决方案
推荐阅读
- go - 为什么 kubetest 没有按照说明安装?
- ios - Xcode:同时在同一台服务器上构建两个应用程序
- javascript - 如果用户正在使用手机,则隐藏某些元素,提供按钮以使元素重新出现
- mongodb - 在 mac os 10.15 for php7 上安装 mongodb
- android - 如何从 viewpager 的片段中的 sqlite 检索一行?
- dotnetnuke - 没有堆栈跟踪的 DNN PageLoadException
- python - Python:你能动态获取函数要返回的变量数量吗?
- java - writeBytes 放入 CR
- java - 有没有办法在没有 RBAC 的情况下获取集群中的所有 pod?
- javascript - Vue Native 的全局样式