下面是详细的“Springboot中静态文件的两种引入方式总结”的攻略:
1. 静态文件的常规引入方式
在Springboot项目中,我们可以将静态文件放置在项目的“resources/static”目录下,这些文件就可以被访问到。
在html文件中,我们可以用如下代码来引入静态文件:
<link rel="stylesheet" href="/css/mystyle.css">
<script src="/js/myjs.js"></script>
这里需要注意的是,“/”代表项目的根目录,而不是文件系统的根目录。
在Thymeleaf模板中,我们可以用如下代码来引入静态文件:
<link rel="stylesheet" th:href="@{/css/mystyle.css}">
<script th:src="@{/js/myjs.js}"></script>
可以看到,在Thymeleaf模板中,我们需要使用“@{}”来包裹静态文件的路径,并且需要在路径前面添加“/”。
2. 静态文件的自定义引入方式
如果我们需要将静态文件存放在项目以外的目录下,或者是以jar包形式部署项目,我们就需要使用自定义的方式来引入静态文件。
自定义引入静态文件的方式有两种:一种是通过实现WebMvcConfigurer接口来添加静态文件处理器(Handler),另一种是通过自定义静态文件的处理器(Handler)。
下面将分别介绍这两种方式:
2.1. 实现WebMvcConfigurer接口方式
要实现自定义静态文件处理方式,我们需要新建一个类,实现WebMvcConfigurer接口,并重写addResourceHandlers方法。
示例代码如下:
@Configuration
public class StaticResourceConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/myfiles/**")
.addResourceLocations("file:/opt/mystaticfiles/");
}
}
上面的代码中,我们将/opt/mystaticfiles/目录下的文件映射到了/myfiles/路径下,这样访问“/myfiles/mystyle.css”时就会去/opt/mystaticfiles/mystyle.css的文件中读取。
2.2. 自定义静态文件处理器(Handler)
另外一种方式,我们可以通过自定义Handler,来实现静态文件的自定义处理方式。
我们需要新建一个类,继承WebMvcConfigurationSupport,重写addResourceHandlers方法,并在使用@ResourceHandler注解来指定处理器的路径和缓存时间等信息。
示例代码如下:
@Configuration
public class CustomStaticResourceConfig extends WebMvcConfigurationSupport {
@Resource
private CustomStaticResourceHandler customStaticResourceHandler;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/myfiles/**")
.setCachePeriod(3600)
.resourceChain(true)
.addResolver(customStaticResourceHandler);
}
}
我们还需要定义一个自定义的Handler,代码如下:
@Component
public class CustomStaticResourceHandler extends VersionResourceResolver {
public CustomStaticResourceHandler() {
super("**");
}
@Override
public Resource resolveResource(HttpServletRequest request, String requestPath, List<? extends Resource> locations, ResourceResolverChain chain) {
return super.resolveResource(request, requestPath, locations, chain);
}
}
上面的代码中,我们自定义了一个CustomStaticResourceHandler的处理器,继承了VersionResourceResolver,并在重写的resolveResource方法中,调用了父类的resolveResource方法来处理静态文件的访问。
在上面的代码中,我们将自定义的Handler设置为了/myfiles/路径下的静态文件处理方式,可以直接访问“/myfiles/mystyle.css”等文件。
至此,“Springboot中静态文件的两种引入方式”就讲解完毕了,希望可以帮助到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot中静态文件的两种引入方式总结 - Python技术站