1

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

任何解决方案?谢谢。

4

3 回答 3

2

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

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

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

于 2012-05-03T19:34:44.967 回答
1

这是不可能的。如果您想从浏览器直接访问内容,它不能驻留在 WEB-INF 中。

于 2012-05-03T19:10:33.660 回答
0

为什么要theme, js, cssWEB-INF文件夹中创建?WEB-INF目录包含有关应用程序的元数据。在正常操作期间,您应该不需要修改 WEB-INF 目录下的任何内容。

您可以直接在目录theme, js, csswarWebContent目录下创建文件夹,这将很容易在您的jsp页面中使用。

这个链接会帮助你。

于 2012-05-03T19:11:31.900 回答