gpt4 book ai didi

maven - 如何在JSP中从/main/resources链接一个Web资源文件?

转载 作者:行者123 更新时间:2023-12-03 03:28:13 25 4
gpt4 key购买 nike

我的 java webapp 中有以下结构

-- main
-- java
-- resources
-- lib
-- css
-- style.css
-- webapp
-- WEB-INF
-- web.xml
--index.jsp

如何将 style.css 链接到我的索引 jsp?

<link rel="stylesheet" href="???">

这里应该有什么?

提前致谢

最佳答案

Maven /main/resources 文件夹用于存放不代表 Java 类的类路径资源,例如 i18n 属性文件和各种配置文件(text、xml、json 等)。这正是您想要通过 ClassLoader#getResourceAsStream() 获取的资源。

该文件夹不适用于公共(public) Web 资源(即可通过公共(public) http://xxx URL 访问的文件)。您应该将这些 Web 资源文件放在 Maven /main/webapp 文件夹中(在 /WEB-INF/META-INF 之外) ,就像您已经正确地对 JSP 文件(这也是公共(public) Web 资源)所做的那样。

因此,只需将 /lib 文件夹向下移动(我个人也会将该文件夹重命名为“resources”、“assets”或“static”,这更符合事实上的情况)标准;“lib”文件夹名称表明它充满了 JAR 文件)。

main
|-- java
|-- resources
`-- webapp
|-- lib
| `-- css
| `-- style.css
|-- WEB-INF
| `-- web.xml
`--index.jsp

鉴于此结构、/webapp 的示例部署上下文路径以及在 http://localhost:8080 上运行的示例服务器,CSS 文件应该是可访问的在下面的绝对 URL 上:

http://localhost:8080/webapp/lib/css/style.css

因此,JSP 页面的 HTML 表示中的以下任何 CSS 链接都可以:

<link rel="stylesheet" href="http://localhost:8080/webapp/lib/css/style.css" />
<link rel="stylesheet" href="//localhost:8080/webapp/lib/css/style.css" />
<link rel="stylesheet" href="/webapp/lib/css/style.css" />
<link rel="stylesheet" href="${pageContext.request.contextPath}/lib/css/style.css" />

任你挑选。考虑到目标 URL 其他部分的动态性,建议使用最后一个。

另请参阅:

关于maven - 如何在JSP中从/main/resources链接一个Web资源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31051494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com