我的項目結構如下無法映射靜態資源正確
| SRC
| - 主
| --- web應用
| ----靜態
| ----- CSS
| --- HTML HTML
| ----- js
我想通過我的控制器返回一個HTML資源,直接在根目錄下的鏈接沒有問題,但對於其他鏈接,我面臨問題。
這裏是我的控制器
@Controller
public class HtmlServer {
@RequestMapping({"/", "/index", "/index.html", "/index.jsp", "/home","/home.html","/home.jsp"})
public ModelAndView index() {
return new ModelAndView("html/index.html");
}
@RequestMapping(method = RequestMethod.GET, value = "/support/{id}/{accessToken}")
public ModelAndView start(@PathVariable Long id, @PathVariable String accessToken) {
return new ModelAndView("html/index.html");
}
}
這裏是我的WebMvcConfigurerAdapter擴展類
@Component
@ConfigurationProperties
@Configuration
@EnableWebMvc
public class ApplicationConfig extends WebMvcConfigurerAdapter {
@Bean
public InternalResourceViewResolver internalResourceViewResolver(){
InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
internalResourceViewResolver.setPrefix("static/");
return internalResourceViewResolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/js/**").addResourceLocations("static/js/")
.setCachePeriod(0);
registry.addResourceHandler("/css/**").addResourceLocations("static/css/")
.setCachePeriod(0);
registry.addResourceHandler("/support/**").addResourceLocations("/static/")
.setCachePeriod(0);
}
}
當我打開/或/index.html控制器返回給定值,作爲回報,我正在服務的正確的資源。
但是,當我嘗試使用/支持/ 1/xsdda我映射到/support/1/static/html/index.html有人可以解釋內部並邏輯上指出我的錯誤。
謝謝!解析器的
我暫時通過使用重定向解決了這個問題:/static/html/index.html但這不是我正在尋找的,我希望HTML頁面呈現給定的URL。我確定必須有一些可配置的類正在執行此操作。只是無法弄清楚哪一個。 – user1615664