【问题标题】:Spring boot with react url not found issue未找到反应 url 的 Spring Boot 问题
【发布时间】:2021-05-18 17:44:51
【问题描述】:

我为我的项目使用 spring boot 和 react,我还使用 maven-frontend-plugin 将 react 和 spring boot 结合到单个项目中。

这是我的问题,当我启动项目时,我转到 http://localhost:8083,它会显示我的 react 前端的主页。但是当我去 http://localhost:8083/login 它会显示 404 找不到页面。如何让前端的所有 url 都转到 react 页面(api url 都以/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>

【问题讨论】:

    标签: reactjs spring spring-boot


    【解决方案1】:

    在 WebConfig 中,您可以设置视图控制器向前响应。

    @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:/");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-10-11
      • 2021-11-06
      • 2019-04-05
      • 2018-01-22
      • 2021-06-24
      • 1970-01-01
      • 2018-02-05
      • 2011-03-04
      • 2021-05-31
      相关资源
      最近更新 更多