【发布时间】:2011-05-03 15:41:51
【问题描述】:
我在 Tomcat 7 容器中运行 web 应用程序,并在尝试访问静态内容(.css 等)时收到 404 错误。下面是我的目录结构:
- 根
- 元信息
- 资源
- CSS
- WEB-INF
- 类
- 库
我在部署描述符中定义了一个默认 servlet,如下所示:
<servlet>
<servlet-name>HomeController</servlet-name>
<servlet-class>controller.HomeController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HomeController</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
HomeController servlet 将请求转发到 .jsp,然后正确呈现视图。
request.getRequestDispatcher("view.jsp").forward(request,
response);
“view.jsp”有一个指向位于上面列出的 css 文件夹中的样式表 (style.css) 的链接。但是,由于 servlet 被配置为默认 servlet,我现在无法访问 css 文件夹中的静态内容,并且对该样式表的任何请求都会返回 404 错误。
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/style.css" />
有没有办法解决这个问题?提供静态资源但仍能定义默认 servlet 的最佳方法是什么?
【问题讨论】: