java - Spring Boot War 中来自 ${catalina.home} 的静态资源
问题描述
在我的 Spring MVC 项目中,我有
<mvc:resources mapping="/resources/**" location="/WEB-INF/resources/, file:${catalina.home}/myresources/" />
配置为从多个位置提供静态资源。然而,在 Spring Boot 中,
@Configuration
public class ResourceConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/", "file:${catalina.home}/myresources/");
}
}
没有按预期工作。请帮忙。
解决方案
@Configuration
public class ResourceConfig implements WebMvcConfigurer {
private static final Log LOG = LogFactory.getLog(ResourceConfig.class);
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
String catalinaHome;
try {
catalinaHome = System.getenv("CATALINA_HOME");
} catch (Exception e) {
LOG.error(e);
catalinaHome = "";
}
registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/", "file:" + catalinaHome + "/myresources/");
}
}
推荐阅读
- c++ - 递归函数显示分段问题 C++
- python - PyMongo .find(data) 返回所有带有键和值的对象
- sql - 由于左连接导致的记录重复
- javascript - 错误:对象在 reactjs 中作为 React 子级无效(发现:[object Promise])
- python - 使用seaborn绘制热图时如何将刻度定位到网格中心?
- laravel - laravel 多值验证规则
- ruby-on-rails - 您将如何在 Rails 控制器中验证上传文件的 mime_type?
- javascript - Vuejs:渲染组件后替换内容
- django - 使用 google django 创建社交身份验证功能
- ios - Xcode12中的任何ios设备(arm64)是什么?