【发布时间】:2016-06-03 04:23:07
【问题描述】:
我正在尝试使用以下代码访问我的 HTML 上的静态资源:
<link th:href="@{css/main.css}" rel="stylesheet" type="text/css" />
但是当我输入@{static/css/main.css} 时才有效。我知道在设置资源文件夹的时候,每次调用静态文件时都不需要设置静态文件夹。
我的文件夹结构:
/webapp
=== /static
==========/css
==========/js
=== /WEB-INF
==========/views
在 Spring 上设置 mvc 配置:
....
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter implements ApplicationContextAware {
private ApplicationContext applicationContext;
@Bean
public ViewResolver viewResolver() {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(templateEngine());
resolver.setCharacterEncoding("UTF-8");
return resolver;
}
private TemplateEngine templateEngine() {
SpringTemplateEngine engine = new SpringTemplateEngine();
engine.setTemplateResolver(templateResolver());
return engine;
}
private ITemplateResolver templateResolver() {
SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
resolver.setApplicationContext(applicationContext);
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".html");
resolver.setCacheable(false); // On production , turn TRUE
resolver.setTemplateMode(TemplateMode.HTML);
return resolver;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("/static/");
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
我正在使用 Spring 4 和 Thymeleaf 3 beta。我正在使用的每个 css-js-image 文件都需要在路径上写入“静态”。如果不编写完整路径,这种编码方式将无法使用。为什么?
【问题讨论】:
标签: java spring spring-mvc thymeleaf