我是Java新手,有一个奇怪的问题。我在WEB- INF文件夹中创建了一些文件夹(主题,js,css),并将我的文件放到该文件夹中。在index.jsp中,我通过以下方式使用css文件:
<style type="text/css"> <%@include file="WEB-INF/css/style.css" %> </style>
效果很好。但是在style.css文件中,我有一个div标签,该标签通过以下方式设置标头标签的背景:
#header{ background: url(../theme/violet/header.jpg) repeat-x; }
哦。我的问题在这里。它不起作用。因为其他的CSS命令效果很好。我知道无法访问WEB- INF详细信息,但可能有某种方式类似于我在index.jsp页面中用于链接style.css的方式。
有什么办法吗?谢谢。
从您添加style.css的方式来看,我想您的index.jsp在WEB- INF文件夹之外,可以通过客户端浏览器直接访问。包含的style.css可以正常工作的原因是因为它包含在服务器端。但是在style.css中,要获取背景图像,浏览器将启动一个新连接到该图像,该图像恰好位于WEB- INF文件夹内,服务器拒绝将其发送回,您就注定了失败。
如果您有一个集中的控制器servlet,则可以将jsps放在WEB- INF文件夹中以防止直接访问它。您的servlet将根据请求参数将所有请求重定向到适当的jsp。
据我所知,没有绝对的理由将图像,JavaScript等放在此文件夹中,当浏览器需要访问此文件夹以检索数据时,您肯定会遇到问题。