我正在运行带有React前端的Spring Boot服务器。我已经将React Project构建到生产环境中,并将构建内容复制到spring项目中的Webapp文件夹中。当我在本地运行它时,它工作得很好,但是当我将WAR上传到AWS时,Web内容显示了Whitelabel错误页面。
WhiteLabel Error Page when hosted in AWS
我尝试将包装更改为JAR,因为AWS日志称Webapp正在启动JAR。但是,即使使用JAR打包,也可以在本地而不是在AWS中正常工作。 以下是我用来将'/'请求定向到src / main / webapp中的index.html文件的WebMvc配置文件
public class WebMvcConfig implements WebMvcConfigurer {
private final long MAX_AGE_SECS = 3600;
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("HEAD", "OPTIONS", "GET", "POST", "PUT", "PATCH", "DELETE")
.maxAge(MAX_AGE_SECS);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("/");
}
}`
答案 0 :(得分:0)
默认情况下,Spring Boot允许将Web文件存储在/ public或/ static或/ resources中,而不是存储在/ webapp中。这些位置无需通过config添加,我只需要添加一个空的控制器类即可。
我删除了addResourceHandler函数,创建了一个空的控制器类
@Controller
public class MyClass{}
,然后将我的Web文件移动到/ resources / public文件夹。 Spring Boot负责配置。 为什么它在本地可以正常运行而不能在AWS上运行仍然是一个谜。
阅读此报价以及我的问题的解决方案。认为值得分享。
语录:“在代码中减少错误的唯一方法是,尽可能不编写代码。使用已经提供的内容,即使需要进行一些研究,还是值得的。”