我在Spring Boot中有一个应用程序。我将依赖添加到gradle
compile 'org.webjars:bootstrap:4.0.0'
然后我将其添加到HTML文件
<link rel="stylesheet" href="/webjars/bootstrap/4.0.0/css/bootstrap.min.css"/>
HTML网页代码如下所示https://zapodaj.net/c19be4422007e.png.html 但CSS文件的地址不起作用https://zapodaj.net/680da5d8a0371.png.html
为什么会这样?显然在Spring Boot中只需添加依赖性,并且应该自动设置所有内容。
答案 0 :(得分:0)
假设您正在使用maven。在你的pom.xml中添加
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.7</version>
<scope>runtime</scope>
</dependency>
然后在你的html文件中,这是你应该如何引用webjar
<link rel="stylesheet" href="/webjars/bootstrap/3.3.7/css/bootstrap.css">
确保您的依赖关系groupId来自&#34; org.webjars&#34;
答案 1 :(得分:0)
我和您一样面临同样的问题。因此,在进行了一些研究之后,我发现WebJars特别与Spring无关,因此我们必须使用Spring MVC为那些客户端依赖项定义一些映射。
让我们假设您的pom.xml中具有此依赖项:
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>4.3.1</version>
</dependency>
因此,请尝试将此配置添加到您的项目中,我认为它会起作用。
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/webjars/**")
.addResourceLocations("/webjars/");
}
}
然后在HTML中引用您的代码:
<link rel="stylesheet" href="/webjars/bootstrap/4.3.1/css/bootstrap.css">
或者在您的百里香中更好:
<link th:href="@{/webjars/bootstrap/4.3.1/css/bootstrap.min.css}" rel="stylesheet" />
答案 2 :(得分:0)
如果其他使用Spring Boot 2的人看到此消息-使用Spring Security,我也遇到了同样的问题,因此必须进行一些更改:
在实现@EnableWebMvc
的配置类中删除了WebMvcConfigurer
,以便带有@SpringBootApplication
注释的主类可以自动配置
在与上述相同的配置类中,覆盖addResourceHandlers()
方法:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/").resourceChain(false);
}
在扩展了WebSecurityConfigurerAdapter
的Spring Security配置类中,我必须做一些事情:
a。让Spring通过删除@EnableWebSecurity
b。覆盖configure(HttpSecurity http)
方法,就像您可能已经做的那样,添加了允许/webjars/**
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/webjars/**").permitAll()
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
c。覆盖configure(WebSecurity webSecurity)
方法:
@Override
public void configure(WebSecurity webSecurity) throws Exception {
webSecurity.ignoring().antMatchers("/webjars/**");
}