带CSS的JSP不显示背景图像

时间:2011-05-29 13:30:11

标签: java html css jsp tomcat

我有以下目录结构

structure http://img853.imageshack.us/img853/7092/96816871.jpg

我的CSS尝试将图像用作背景

#search-text {
width: 213px;
height: 28px;
padding: 6px 0 0 7px;
border: none;
background: url(../images/img02.jpg) no-repeat left top;
color: #000000;

}

并且它不起作用,而css的其他部分工作正常。

Firebug显示应用程序尝试通过URL _http:// localhost:8080 / images / img02.jpg访问图像并获取404错误

当我尝试直接访问图像时,我也会收到此错误。我也试过了 _http://本地主机:8080 /付款网关/图像/ img02.jpg _http://本地主机:8080 /付款网关/资源/图像/ img02.jpg ......而且这个错误不会停止跟着我。

当我将CSS文件更改为以下

background: url(images/img02.jpg) no-repeat left top;

警告出现在网络服务器日志中:

WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/paygate/images/img02.jpg] in DispatcherServlet with name 'appServlet'

并且Firebug显示404错误的URL _http:// localhost:8080 / paygate /images/img02.jpg

我应该如何组织我的目录结构,或者我该怎么做才能使我的图像可访问。感谢的!

P.S。我正在使用springsource tc服务器作为网络服务器。

2 个答案:

答案 0 :(得分:2)

根据您的项目结构,.css文件和图像文件夹处于同一级别,所以:

background: url(images/img02.jpg) no-repeat left top;

会奏效。

答案 1 :(得分:2)

静态资源应该由容器的默认servlet提供。但是,无论何时在Web应用程序中映射//*的URL模式上的任何servlet,都将完全覆盖默认的servlet。你不想拥有它。将Spring调度程序servlet映射到更具体的URL模式,例如/app/**.html或其他。如果您不希望对URL进行更改,则需要将静态资源放在固定文件夹(如/static)中并创建Filter,以便将非静态资源转发给Spring调度程序的servlet。

另见: