У меня есть приложение на основе 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
, но . По какой-то причине я не вижу свой пользовательский интерфейс .
Поскольку я реализовал свой интерфейс как одностраничное приложение, я настроил свой сервер, используя 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: /
Спасибо