代码之家  ›  专栏  ›  技术社区  ›  CoderJammer

sprinboot webapp不加载webjars和css

  •  0
  • CoderJammer  · 技术社区  · 6 年前

    我有带Springboot和JSP的MavenWebapp。我正在尝试导入Webjar以在我的JSP上使用引导程序,我添加了对POM(包括定位器)的依赖项,并将资源处理程序放在我的Webconfig上:

    <dependency>
    <groupId>org.webjars</groupId>
    <artifactId>bootstrap</artifactId>
    <version>3.3.7-1</version>
    </dependency>
    <dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.1.1</version>
    </dependency>
    <dependency>
    <groupId>org.webjars</groupId>
    <artifactId>webjars-locator</artifactId>
    <version>0.30</version>
    </dependency>
    

    现在我在webconfig上添加引用:

    @Configuration
    @EnableWebMvc
    public class WebConfig implements WebMvcConfigurer {
    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry
          .addResourceHandler("/webjars/**")
          .addResourceLocations("/webjars/");
     }
    }
    

    然后我尝试在JSP中导入jar:

    <script src="/webjars/jquery/3.1.1/jquery.min.js"></script>
    

    但不起作用……我将CSS放在webapp文件夹中,但无法将其链接到JSP中。

    我怎么解决这个问题?怎么了?谢谢大家

    ps:我在WEINF/JSP/Pages中有我的JSP,并且我已经向application.properties添加了一个上下文路径(但是我认为与webconfig类有一些冲突)。

    3 回复  |  直到 6 年前
        1
  •  0
  •   Andy Wilkinson    6 年前

    通过使用 @EnableWebMvc ,您已向Spring Boot指示要完全控制配置Spring MVC。这意味着它对静态资源的所有自动配置、Web JAR支持等都已关闭。

    您可以删除 WebConfig 类,因为它正在复制Spring引导将自动为您执行的配置。如果需要自定义默认配置,则应实现 WebMvcConfigurer 正如你所做的,但省略 @ EnableWebMvc 注释。

        2
  •  0
  •   Thirumal    6 年前

    添加下面的类。

    @Configuration
    @EnableWebSecurity//(debug=true)
    public class SecurityConfig extends WebSecurityConfigurerAdapter {
    
        @Override
        public void configure(WebSecurity web) throws Exception {
            web.ignoring().requestMatchers(CorsUtils::isPreFlightRequest)
            .antMatchers("/webjars/**");
        }
    
    }
    
        3
  •  0
  •   يعقوب    6 年前

    添加 resourceChain 然后像这样设置为假:

     registry.addResourceHandler("/webjars/**").addResourceLocations("/webjars/").resourceChain(false);
    

    这显然不是Webjar定位器问题。请调用 resourceChain() 方法应该是配置Webjar定位器所必需的。

    有关详细信息,请参阅 link