无法使用contextPath / foo(Vue.js. + Spring Boot)呈现视图

时间:2018-12-03 13:25:18

标签: spring-boot vue.js webpack

我在前端有一个基于 Vue.js 的应用程序,在后端有一个基于 Spring Boot 的应用程序。

我的生产应用程序不在服务器的根目录中,而是localhost:8090/ui中的子路径。这是我的 application.yml

server:
  port: 8090
  servlet:
    contextPath: /ui

我在assetsPublicPath: '/ui'中设置了config/index.js,所以我在index.html中的所有引用都像/ui/static/...

根据Google Chrome浏览器,我的生产服务器成功返回了我的所有静态资产,例如localhost:8080/ui/static/images/example.png,但是由于某种原因我看不到我的用户界面enter image description here

在将前端实现为单页应用程序时,我使用 WebAutoConfig 将服务器配置为将所有服务器重定向到index.html,如下所示:

@Configuration
public class WebAutoConfig implements WebMvcConfigurer {
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/")
                .setViewName("forward:/index.html");
    }
}

我还使用mode: 'history'中的router\index.js属性。没有它,一切工作正常,但我不想在URL中使用丑陋的哈希,例如localhost:8090/ui/#/。此外,即使启用了历史记录模式,但一切正常,但没有子路径,即contextPath: / enter image description here

谢谢

0 个答案:

没有答案