我有以下目录结构
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服务器作为网络服务器。
答案 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。