ace*_*ace 8 spring image spring-boot
目前我的图像存储在项目目录的/ src/main/resources/static/myimages中.现在我想将这些项目目录移到/ Users/tom/myimages之外,这样在HTML标记中的img标签src ="/ myimages/subdir/first.jpg"将从/ Users/tom/myimages /加载子目录/ first.jpg.如何在spring boot 2.0项目中实现这一目标?
这将允许我添加新图像,而无需在生产环境中重新编译项目.
也许您应该尝试定义自己的静态资源处理程序?
它将覆盖默认值。
像这样的东西:
@Configuration
public class StaticResourceConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("file:/path/to/my/folder/");
}
}
Run Code Online (Sandbox Code Playgroud)
更新 这似乎是我的一些旧项目的工作:
@Configuration
@AutoConfigureAfter(DispatcherServletAutoConfiguration.class)
public class CustomWebMvcAutoConfig extends
WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
String myExternalFilePath = "file:///C:/Users/tom/imgs/";
registry.addResourceHandler("/imgs/**").addResourceLocations(myExternalFilePath);
super.addResourceHandlers(registry);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以实现这一点,PathResourceResolver
它是最简单的解析器,其目的是在给定公共 URL 模式的情况下查找资源。事实上,这是默认的解析。
@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/myimages/**")
.addResourceLocations("/Users/tom/myimages")
.setCachePeriod(3600)
.resourceChain(true)
.addResolver(new PathResourceResolver());
}
}
Run Code Online (Sandbox Code Playgroud)
PathResourceResolver
将资源链中的 注册为其中的唯一ResourceResolver
。PathResourceResolver
在/first.jpg
文件/Users/tom/myimages
夹中定位文件 归档时间: |
|
查看次数: |
1251 次 |
最近记录: |