无效,可能和Controller的URL模式有关" /> 无效,可能和Controller的URL模式有关 - 秒客网" />

无效,可能和Controller的URL模式有关

时间:2023-03-10 02:04:56
<mvc:resources mapping="/xxx/**" location="/xxx/"/>无效,可能和Controller的URL模式有关

某项目webapp下有子目录res,其中有img、css、js等存放静态资源的文件夹。

在定义了dispacher-servlet的<url-pattern>/</url-pattern>后,

    <!-- 配置DispatcherServlet -->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

为访问静态资源,特别在dispacher-servlet.xml定义了<mvc:resource/>标签

    <!-- 注解驱动 -->
<mvc:annotation-driven /> <!-- 静态资源访问,约定:静态资源都放在web应用根的res文件夹中 -->
<mvc:resources location="/res/" mapping="/res/**" />

随后定义了HomeController,如下:

@Controller
public class HomeController { @RequestMapping(method=RequestMethod.GET)
public String home() {
return "home";
}
}

结果,无法访问静态资源

为Controller加上url模式,

@Controller
public class HomeController { @RequestMapping(value="/", method=RequestMethod.GET)
public String home() {
return "home";
}
}

之后,访问静态资源正常了。