Jawr & Springboot - 资源文件夹未解析
Jawr & Springboot - Resources folders not resolved
我的问题是 css 和 js 文件的捆绑包没有被解析。
我正在将我的 WAR 应用程序迁移到 Spring 启动应用程序。
这是 jawr 的 servlet 3.0 配置:
@Configuration
public class WebJawrConfiguration {
private final Properties properties;
public WebJawrConfiguration(final WebSelfiscProperties webProperties) {
this.properties = new Properties();
this.properties.putAll(webProperties.getJawr().entrySet().stream().collect(Collectors.toMap(e -> "jawr." + e.getKey(), Entry::getValue)));
}
@Bean
public JawrSpringController jawrBinaryController() {
final JawrSpringController jawrBinaryController = new JawrSpringController();
jawrBinaryController.setConfiguration(properties);
jawrBinaryController.setType(JawrConstant.BINARY_TYPE);
return jawrBinaryController;
}
@Bean
@DependsOn("jawrBinaryController")
public JawrSpringController jawrCssController() {
final JawrSpringController jawrCssController = new JawrSpringController();
jawrCssController.setConfiguration(properties);
jawrCssController.setType(JawrConstant.CSS_TYPE);
// jawrCssController.setMapping("/public/bundles/css");
return jawrCssController;
}
@Bean
@DependsOn("jawrCssController")
public JawrSpringController jawrJsController() {
final JawrSpringController jawrJsController = new JawrSpringController();
jawrJsController.setConfiguration(properties);
jawrJsController.setType(JawrConstant.JS_TYPE);
// jawrJsController.setMapping("/public/bundles/js");
return jawrJsController;
}
@Configuration
@ConditionalOnMissingBean(name = "jawrHandlerMapping")
@DependsOn("jawrJsController")
public class jawrHandlerMappingConfiguration {
private final JawrSpringController jawrJsController;
private final JawrSpringController jawrCssController;
private final JawrSpringController jawrBinaryController;
/**
* Constructeur
*
* @param jawrJsController
* @param jawrCssController
* @param jawrBinaryController
*/
public jawrHandlerMappingConfiguration(final JawrSpringController jawrJsController, final JawrSpringController jawrCssController, final JawrSpringController jawrBinaryController) {
super();
this.jawrJsController = jawrJsController;
this.jawrCssController = jawrCssController;
this.jawrBinaryController = jawrBinaryController;
}
@Bean
public HandlerMapping jawrHandlerMapping() {
final SimpleUrlHandlerMapping handlerMapping = new SimpleUrlHandlerMapping();
handlerMapping.setOrder(Ordered.HIGHEST_PRECEDENCE);
final Map<String, Object> urlMap = new HashMap<>();
urlMap.put("**/*.css", jawrCssController);
urlMap.put("**/*.eot", jawrBinaryController);
urlMap.put("**/*.gif", jawrBinaryController);
urlMap.put("**/*.ico", jawrBinaryController);
urlMap.put("**/*.jpg", jawrBinaryController);
urlMap.put("**/*.jpeg", jawrBinaryController);
urlMap.put("**/*.js", jawrJsController);
urlMap.put("**/*.png", jawrBinaryController);
urlMap.put("**/*.ttf", jawrBinaryController);
urlMap.put("**/*.woff", jawrBinaryController);
urlMap.put("**/*.woff2", jawrBinaryController);
urlMap.put("**/*.svg", jawrBinaryController);
handlerMapping.setUrlMap(urlMap);
return handlerMapping;
}
}
}
5 月的一部分 application.properties :
# Common properties
jawr.debug.on=false
jawr.gzip.on=false
jawr.gzip.ie6.on=false
jawr.charset.name=UTF-8
jawr.css.bundle.base.id=/base.css
jawr.css.bundle.base.mappings=/public/css/blue-theme.css,/public/css/main.css
以及它是如何在我的 JSP
中声明的
<jawr:style src="/base.css" />
如果我设置jawr.debug.on=true
一切正常:
<link rel="stylesheet" type="text/css" media="screen" href="/sel/public/css/blue-theme.css?d=1136145833">
<link rel="stylesheet" type="text/css" media="screen" href="/sel/public/css/main.css?d=762931402">
如果我设置jawr.debug.on=false
散列前缀 link 对其进行版本化。但是id已经解析不出来了
<link rel="stylesheet" type="text/css" media="screen" href="/2096063500/base.css">
我已经尝试纠正这个问题一个多星期了。没有成功。
有没有人遇到过这个问题?
谢谢。
我解决了我的问题。
这是我的新配置:
@Configuration
public class WebJawrConfiguration {
private final Properties properties;
/**
* Constructor
*
* @param webProperties
*/
public WebJawrConfiguration(final WebSelfiscProperties webProperties) {
this.properties = new Properties();
this.properties.putAll(webProperties.getJawr().entrySet().stream().collect(Collectors.toMap(e -> "jawr." + e.getKey(), Entry::getValue)));
}
@Bean
@DependsOn("jawrBinaryController")
public JawrSpringController jawrCssController() {
final JawrSpringController jawrCssController = new JawrSpringController();
final Properties propertiesCss = new Properties();
propertiesCss.putAll(properties.entrySet().stream().filter(e -> !e.getKey().toString().contains("jawr.js"))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue)));
jawrCssController.setConfiguration(propertiesCss);
jawrCssController.setType(JawrConstant.CSS_TYPE);
return jawrCssController;
}
@Bean
@DependsOn("jawrCssController")
public JawrSpringController jawrJsController() {
final JawrSpringController jawrJsController = new JawrSpringController();
final Properties propertiesJs = new Properties();
propertiesJs.putAll(properties.entrySet().stream().filter(e -> !e.getKey().toString().contains("jawr.css"))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue)));
jawrJsController.setConfiguration(propertiesJs);
jawrJsController.setType(JawrConstant.JS_TYPE);
return jawrJsController;
}
@Configuration
@DependsOn("jawrJsController")
public class jawrHandlerMappingConfiguration {
private final JawrSpringController jawrJsController;
private final JawrSpringController jawrCssController;
/**
* Constructor
*
* @param jawrJsController
* @param jawrCssController
*/
public jawrHandlerMappingConfiguration(final JawrSpringController jawrJsController, final JawrSpringController jawrCssController) {
super();
this.jawrJsController = jawrJsController;
this.jawrCssController = jawrCssController;
}
@Bean
@DependsOn("jawrJsController")
public HandlerMapping jawrHandlerMapping() {
final SimpleUrlHandlerMapping handlerMapping = new SimpleUrlHandlerMapping();
handlerMapping.setOrder(Ordered.HIGHEST_PRECEDENCE);
final Map<String, Object> urlMap = new HashMap<>();
urlMap.put("**/*.css", jawrCssController);
urlMap.put("**/*.js", jawrJsController);
handlerMapping.setUrlMap(urlMap);
return handlerMapping;
}
}
}
并将我的 servlet 调度程序映射到 *.css、*.js
我的问题是 css 和 js 文件的捆绑包没有被解析。
我正在将我的 WAR 应用程序迁移到 Spring 启动应用程序。
这是 jawr 的 servlet 3.0 配置:
@Configuration
public class WebJawrConfiguration {
private final Properties properties;
public WebJawrConfiguration(final WebSelfiscProperties webProperties) {
this.properties = new Properties();
this.properties.putAll(webProperties.getJawr().entrySet().stream().collect(Collectors.toMap(e -> "jawr." + e.getKey(), Entry::getValue)));
}
@Bean
public JawrSpringController jawrBinaryController() {
final JawrSpringController jawrBinaryController = new JawrSpringController();
jawrBinaryController.setConfiguration(properties);
jawrBinaryController.setType(JawrConstant.BINARY_TYPE);
return jawrBinaryController;
}
@Bean
@DependsOn("jawrBinaryController")
public JawrSpringController jawrCssController() {
final JawrSpringController jawrCssController = new JawrSpringController();
jawrCssController.setConfiguration(properties);
jawrCssController.setType(JawrConstant.CSS_TYPE);
// jawrCssController.setMapping("/public/bundles/css");
return jawrCssController;
}
@Bean
@DependsOn("jawrCssController")
public JawrSpringController jawrJsController() {
final JawrSpringController jawrJsController = new JawrSpringController();
jawrJsController.setConfiguration(properties);
jawrJsController.setType(JawrConstant.JS_TYPE);
// jawrJsController.setMapping("/public/bundles/js");
return jawrJsController;
}
@Configuration
@ConditionalOnMissingBean(name = "jawrHandlerMapping")
@DependsOn("jawrJsController")
public class jawrHandlerMappingConfiguration {
private final JawrSpringController jawrJsController;
private final JawrSpringController jawrCssController;
private final JawrSpringController jawrBinaryController;
/**
* Constructeur
*
* @param jawrJsController
* @param jawrCssController
* @param jawrBinaryController
*/
public jawrHandlerMappingConfiguration(final JawrSpringController jawrJsController, final JawrSpringController jawrCssController, final JawrSpringController jawrBinaryController) {
super();
this.jawrJsController = jawrJsController;
this.jawrCssController = jawrCssController;
this.jawrBinaryController = jawrBinaryController;
}
@Bean
public HandlerMapping jawrHandlerMapping() {
final SimpleUrlHandlerMapping handlerMapping = new SimpleUrlHandlerMapping();
handlerMapping.setOrder(Ordered.HIGHEST_PRECEDENCE);
final Map<String, Object> urlMap = new HashMap<>();
urlMap.put("**/*.css", jawrCssController);
urlMap.put("**/*.eot", jawrBinaryController);
urlMap.put("**/*.gif", jawrBinaryController);
urlMap.put("**/*.ico", jawrBinaryController);
urlMap.put("**/*.jpg", jawrBinaryController);
urlMap.put("**/*.jpeg", jawrBinaryController);
urlMap.put("**/*.js", jawrJsController);
urlMap.put("**/*.png", jawrBinaryController);
urlMap.put("**/*.ttf", jawrBinaryController);
urlMap.put("**/*.woff", jawrBinaryController);
urlMap.put("**/*.woff2", jawrBinaryController);
urlMap.put("**/*.svg", jawrBinaryController);
handlerMapping.setUrlMap(urlMap);
return handlerMapping;
}
}
}
5 月的一部分 application.properties :
# Common properties
jawr.debug.on=false
jawr.gzip.on=false
jawr.gzip.ie6.on=false
jawr.charset.name=UTF-8
jawr.css.bundle.base.id=/base.css
jawr.css.bundle.base.mappings=/public/css/blue-theme.css,/public/css/main.css
以及它是如何在我的 JSP
中声明的<jawr:style src="/base.css" />
如果我设置jawr.debug.on=true 一切正常:
<link rel="stylesheet" type="text/css" media="screen" href="/sel/public/css/blue-theme.css?d=1136145833">
<link rel="stylesheet" type="text/css" media="screen" href="/sel/public/css/main.css?d=762931402">
如果我设置jawr.debug.on=false 散列前缀 link 对其进行版本化。但是id已经解析不出来了
<link rel="stylesheet" type="text/css" media="screen" href="/2096063500/base.css">
我已经尝试纠正这个问题一个多星期了。没有成功。
有没有人遇到过这个问题? 谢谢。
我解决了我的问题。
这是我的新配置:
@Configuration
public class WebJawrConfiguration {
private final Properties properties;
/**
* Constructor
*
* @param webProperties
*/
public WebJawrConfiguration(final WebSelfiscProperties webProperties) {
this.properties = new Properties();
this.properties.putAll(webProperties.getJawr().entrySet().stream().collect(Collectors.toMap(e -> "jawr." + e.getKey(), Entry::getValue)));
}
@Bean
@DependsOn("jawrBinaryController")
public JawrSpringController jawrCssController() {
final JawrSpringController jawrCssController = new JawrSpringController();
final Properties propertiesCss = new Properties();
propertiesCss.putAll(properties.entrySet().stream().filter(e -> !e.getKey().toString().contains("jawr.js"))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue)));
jawrCssController.setConfiguration(propertiesCss);
jawrCssController.setType(JawrConstant.CSS_TYPE);
return jawrCssController;
}
@Bean
@DependsOn("jawrCssController")
public JawrSpringController jawrJsController() {
final JawrSpringController jawrJsController = new JawrSpringController();
final Properties propertiesJs = new Properties();
propertiesJs.putAll(properties.entrySet().stream().filter(e -> !e.getKey().toString().contains("jawr.css"))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue)));
jawrJsController.setConfiguration(propertiesJs);
jawrJsController.setType(JawrConstant.JS_TYPE);
return jawrJsController;
}
@Configuration
@DependsOn("jawrJsController")
public class jawrHandlerMappingConfiguration {
private final JawrSpringController jawrJsController;
private final JawrSpringController jawrCssController;
/**
* Constructor
*
* @param jawrJsController
* @param jawrCssController
*/
public jawrHandlerMappingConfiguration(final JawrSpringController jawrJsController, final JawrSpringController jawrCssController) {
super();
this.jawrJsController = jawrJsController;
this.jawrCssController = jawrCssController;
}
@Bean
@DependsOn("jawrJsController")
public HandlerMapping jawrHandlerMapping() {
final SimpleUrlHandlerMapping handlerMapping = new SimpleUrlHandlerMapping();
handlerMapping.setOrder(Ordered.HIGHEST_PRECEDENCE);
final Map<String, Object> urlMap = new HashMap<>();
urlMap.put("**/*.css", jawrCssController);
urlMap.put("**/*.js", jawrJsController);
handlerMapping.setUrlMap(urlMap);
return handlerMapping;
}
}
}
并将我的 servlet 调度程序映射到 *.css、*.js