6

我正在使用 ibm websphere 并创建一个动态 web 项目。我所有的JSP文件都在我的 WEB-INF 文件夹中,并且我在我的文件中使用 servlet 映射 web.xml来使它们可以访问。到目前为止,这工作得很好。但是我的 CSS 有问题。与往常一样,我的CSS文件位于WebContent名为 css 的文件夹中。这是我的链接jsp

<link rel="stylesheet" href = "css/styles.css">

我没有运气让我的CSS显示......
我错过了什么?

4

2 回答 2

13

生成的 HTML 输出中的相对 URL 是由浏览器相对于请求 URL(如您在浏览器的地址栏中看到的)解释的,而不是它们在服务器磁盘文件系统中的物理位置。即必须通过 HTTP 请求下载它们的网络浏览器,而不是必须以某种方式从磁盘包含它们的网络服务器。

其中一种方法是对这些资源使用域相对路径,即以/. 您可以使用${pageContext.request.contextPath}动态内联当前 webapp 的上下文路径。

<link rel="stylesheet" href="${pageContext.request.contextPath}/css/styles.css">

这将在生成的 HTML 输出中结束,如下所示:

<link rel="stylesheet" href="/yourContextPath/css/styles.css">

这样浏览器将能够正确下载它们。

也可以看看:

于 2012-04-27T17:53:32.510 回答
0

我想你需要从浏览器的角度来看,它是怎样的页面的URL,上下文路径和当前路径。

如果您的应用程序上下文路径是例如“myApp”,那么您可以执行以下操作以使其工作:

<link rel="stylesheet" href = "/myApp/css/styles.css">

如果你想让它相对而不依赖于上下文路径,那么如果你的 url 看起来像http://localhost:8080/myApp/myservlet/file.jsp

那么你的链接标签将是

<link rel="stylesheet" href = "../css/styles.css">

Firebug 或 chrome 控制台可能对了解浏览器试图获取的内容非常有帮助。

希望这可以帮助!

于 2012-04-27T17:40:51.900 回答