【问题标题】:how can i connect my css to my JSP files stored in the WEB-INF folder? Websphere/JSP如何将我的 css 连接到存储在 WEB-INF 文件夹中的 JSP 文件? Websphere/JSP
【发布时间】:2012-04-27 17:36:39
【问题描述】:

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

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

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

【问题讨论】:

    标签: html css jsp


    【解决方案1】:

    生成的 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">
    

    这样浏览器就可以正常下载了。

    另见:

    【讨论】:

    • 我试过 但没有成功
    • 我的回答假设 /css 文件夹位于根 webcontent 文件夹中。 /WEB-INF 文件夹也位于其中。如果它在不同的文件夹中,甚至在/WEB-INF 中,那么它显然不起作用。您需要确保&lt;link href&gt; 能够准确地解析为您在浏览器地址栏中直接输入的 URL,以便手动下载 CSS 文件。
    • 格式化不起作用,但是是的,我有 WebContent 文件夹,里面有我的 css 文件夹和 WEB-INF 文件夹。 WEB-INF 包含我所有的 JSP 文件
    • 如果我尝试在本地主机上手动访问 css 文件,该格式会是什么? localhost:8080/'projectname'/WebContent/css/styles.css??是项目名称还是我的上下文根?
    • 只是http://localhost:8080/yourContextPath/css/styles.css 其中yourContextPath 是您的上下文路径。顺便说一句,这正是我的答案中 &lt;link&gt; 解析为的 URL。因此,这可能不会为您返回所需的 CSS,而是 404。这可能是由于 CSS 文件实际上不在您认为的位置,或者 URL 中的拼写错误(区分大小写!),或者在项目等发生更改或过度热心的 servlet 或过滤器工作错误后,webapp/server 未完全重建/重新部署/重新启动。
    【解决方案2】:

    我觉得你需要从浏览器的角度来看,它是怎样的页面的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 控制台可能对了解浏览器尝试获取的内容非常有帮助。

    希望这会有所帮助!

    【讨论】:

    • 好的,所以上下文根是指上下文路径?让我试试。我是否也需要在 href 链接的路径中有 WebContent 文件夹???
    • 只需尝试使用 firebug 或控制台,您就会明白我的意思 :) 您应该会看到一个失败的请求,并显示您的 css 文件出现 404 错误,然后您就可以看到浏览器的预期位置。
    • 我点击了 Firefox 小萤火虫栏上的 CSS 选项卡,它只是说“没有规则。您可以创建规则。”
    • 我能够进入并使用“创建规则”来编辑我的 CSS 并使我的

      标签变为蓝色,哈哈。它会告诉我它想要的路径吗?

    猜你喜欢
    • 2014-05-20
    • 2015-01-23
    • 2012-12-30
    • 2013-11-19
    • 2022-01-22
    • 2014-08-17
    • 2011-05-16
    • 1970-01-01
    • 2012-03-25
    相关资源
    最近更新 更多