一尘不染

我如何访问放在WEB-INF文件夹中的文件

jsp

我是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的方式。

有什么办法吗?谢谢。


阅读 536

收藏
2020-06-08

共1个答案

一尘不染

从您添加style.css的方式来看,我想您的index.jsp在WEB-
INF文件夹之外,可以通过客户端浏览器直接访问。包含的style.css可以正常工作的原因是因为它包含在服务器端。但是在style.css中,要获取背景图像,浏览器将启动一个新连接到该图像,该图像恰好位于WEB-
INF文件夹内,服务器拒绝将其发送回,您就注定了失败。

如果您有一个集中的控制器servlet,则可以将jsps放在WEB-
INF文件夹中以防止直接访问它。您的servlet将根据请求参数将所有请求重定向到适当的jsp。

据我所知,没有绝对的理由将图像,JavaScript等放在此文件夹中,当浏览器需要访问此文件夹以检索数据时,您肯定会遇到问题。

2020-06-08