Spring Webjars定位器和上下文路径

dpl*_*esa 4 java spring spring-mvc spring-security spring-boot

我有Spring Boot应用程序,启用了Spring Security,配置如下:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/", "/home", "/webjars/**", "/css/**").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
            .logout()
                .permitAll();
    }
Run Code Online (Sandbox Code Playgroud)

一切正常,直到我改变上下文路径.例如,如果我将它设置为:

server:
   context-path: /myapp
Run Code Online (Sandbox Code Playgroud)

我无法访问我的webjars,css ......他们仍然看着:http:// localhost:8080/webjars / ...

如何配置Spring Webjars以使其无论上下文路径如何都可以工作?

dpl*_*esa 5

好的,我解决了这个问题.

我忘记做的是请求Thymeleaf引擎处理我的CSS和js文件的相对路径.所以,基本上我在模板中更改了这个:

<link rel="stylesheet" type="text/css" href="/webjars/bootstrap/css/bootstrap.min.css" />
Run Code Online (Sandbox Code Playgroud)

对此:

<link rel="stylesheet" type="text/css" th:href="@{/webjars/bootstrap/css/bootstrap.min.css}" />
Run Code Online (Sandbox Code Playgroud)