[英]Spring boot with react url not found issue
我使用 spring 引導並為我的項目做出反應,我還使用 maven-frontend-plugin 將反應和 spring 引導到單個項目。
這是我的問題,當我啟動項目時,我從 go 到 http://localhost:8083 它將顯示我的反應前端的主頁。 但是當我從 go 到 http://localhost:8083/login 時,它會顯示 404 找不到頁面。 How can I make all url for front end go to the react page (the api url all start with /api
)
這是我的 Maven 前端插件
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<!-- Use the latest released version:
https://repo1.maven.org/maven2/com/github/eirslett/frontend-maven-plugin/ -->
<version>1.6</version>
<configuration>
<nodeVersion>v4.6.0</nodeVersion>
<workingDirectory>src/frontend</workingDirectory>
</configuration>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<configuration>
<nodeVersion>v15.4.0</nodeVersion>
<npmVersion>7.3.0</npmVersion>
</configuration>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
<execution>
<id>npm run build</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>run-script build</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-build-folder</id>
<phase>process-classes</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/frontend/build</directory>
</resource>
</resources>
<outputDirectory>${basedir}/target/classes/static</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
在 WebConfig 中您可以設置視圖 controller forward 以做出反應。
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry){
registry.addViewController("/{spring:\\w+}")
.setViewName("forward:/");
registry.addViewController("/**/{spring:\\w+}")
.setViewName("forward:/");
registry.addViewController("/{spring:\\w+}/**{spring:?!(\\.js|\\.css)$}")
.setViewName("forward:/");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.