Docker不提供index.html Spring Boot应用程序[500/503错误]

时间:2019-03-18 08:35:12

标签: apache spring-boot docker vue.js docker-compose

我有一个在docker容器中运行的spring-boot应用程序,但是每当我尝试访问该站点时,我都会得到一个404 Error

该应用程序正在服务vuejs应用程序,并将资源从vue应用程序的/dist文件夹复制到Spring Boot应用程序中类路径的public/static文件夹。

但是:每当我尝试访问该网站时,我都会得到一个404 Error(这会导致为该应用提供服务的apache层出现503/500错误)。

在本地运行应用程序时,我注意到的一件事是:

2019-03-15 16:42:12.891  INFO 48301 --- [  restartedMain] o.s.b.a.w.s.WelcomePageHandlerMapping    : Adding welcome page: class path resource [public/index.html]
2019-03-15 16:42:14.185  INFO 48301 --- [  restartedMain] o.s.b.d.a.OptionalLiveReloadServer       : LiveReload server is running on port 35729
2019-03-15 16:42:14.204  INFO 48301 --- [  restartedMain] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'

该实例在localhost上运行良好,并且看来WelcomePageHandlerMapping正在将资源添加为入口点。该消息未出现在docker容器中。

我有这个控制器类:

@Controller
public class RoutesController implements ErrorController {
    private static final String PATH = "/error";

    @RequestMapping(value = PATH)
    public String error() {
        return "/index.html";
    }

    @Override
    public String getErrorPath() {
        return PATH;
    }

    @RequestMapping(value="/result/{userid}")
    @ResponseStatus(HttpStatus.OK)
    public String returnIndex() {
        return "/index.html";
    }

    @RequestMapping(value="/", method = RequestMethod.GET)
    @ResponseStatus(HttpStatus.OK)
    public String returnHome() {
        System.out.println("Request for homepage");
        return "/index.html";
    }

}

意味着它应该返回index.html,即使该路径不存在。以及在原始请求上提供索引文件-但是什么也没有发生。

这几乎就像docker容器无法访问文件一样,但是我不知道,因为这在本地有效。

在这里做什么的任何想法?

0 个答案:

没有答案