gpt4 book ai didi

java - 在 AWS Elasticbeanstalk 中部署时网页资源未加载

转载 作者:行者123 更新时间:2023-12-02 03:03:35 26 4
gpt4 key购买 nike

我正在运行带有 React 前端的 Spring Boot 服务器。我已将 React 项目构建为生产环境,并将构建内容复制到 Spring 项目中的 Webapp 文件夹中。当我在本地运行它时,它运行得很好,但是当我将 WAR 上传到 AWS 时,Web 内容显示了一个 Whitelabel 错误页面。

WhiteLabel Error Page when hosted in AWS

我尝试将打包更改为 JAR,因为 AWS 日志显示 Web 应用程序正在启动 JAR。但即使使用 JAR 打包,一切都在本地运行良好,而不是在 AWS 中运行。 下面是我的 WebMvc 配置文件,我用来将“/”请求定向到 src/main/webapp 中的 index.html 文件

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("/");
}
}`

最佳答案

Spring Boot 默认情况下允许将 Web 文件存储在/public 或/static 或/resources 中,而不是存储在/webapp 中。这些位置不需要通过配置添加,我只需要添加一个空的 Controller 类。

我删除了 addResourceHandler 函数,创建了一个空的 Controller 类

@Controller
public class MyClass{}

并将我的 Web 文件移至/resources/public 文件夹。 Spring Boot 负责配置。为什么它在本地运行良好而在 AWS 中不起作用对我来说仍然是个谜。

阅读此引言以及我的问题的解决方案。认为值得分享。

引用:“减少代码中错误的唯一方法就是尽可能不要编写代码。使用已经提供的代码,即使这需要一些研究,但返回是值得的。”

关于java - 在 AWS Elasticbeanstalk 中部署时网页资源未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57036538/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com