Maven 如何在JSP中从/main/resources链接web资源文件?
我的JavaWebApp中有以下结构Maven 如何在JSP中从/main/resources链接web资源文件?,maven,jsp,resources,Maven,Jsp,Resources,我的JavaWebApp中有以下结构 -- main -- java -- resources -- lib -- css -- style.css -- webapp -- WEB-INF -- web.xml --index.jsp 如何将style.css链接到我的索引jsp <link rel="stylesheet" href="???"> 这里应该有什
-- main
-- java
-- resources
-- lib
-- css
-- style.css
-- webapp
-- WEB-INF
-- web.xml
--index.jsp
如何将style.css链接到我的索引jsp
<link rel="stylesheet" href="???">
这里应该有什么
提前感谢您需要将要交付给客户的资产放在您的
webapp
目录下。否则,您将需要编写一个servlet来交付它们
您可以在.Maven
/main/resources
文件夹的第10章中找到所有的细节,该文件夹用于不表示Java类的类路径资源,例如i18n属性文件和各种配置文件(文本、xml、json等)。它正是您希望通过ClassLoader\getResourceAsStream()
获得的资源
该文件夹不用于公共web资源(即公共http://xxx
URL)。您应该将这些web资源文件放在Maven/main/webapp
文件夹中(在/web-INF
和/META-INF
之外),就像您对JSP文件(也是公共web资源)所做的一样
因此,只需将/lib
文件夹向下移动(我个人也会将该文件夹重命名为“resources”、“assets”或“static”,这更符合事实上的标准;“lib”文件夹名称意味着它充满了JAR文件)
main
|--爪哇
|--资源
`--网络应用
|--解放党
|`--css
|`--style.css
|--WEB-INF
|`--web.xml
`--index.jsp
给定此结构,示例部署上下文路径为/webapp
,示例服务器运行于http://localhost:8080
,CSS文件应可通过以下绝对URL访问:
因此,JSP页面的HTML表示中的以下任何CSS链接都应该:
<link rel="stylesheet" href="http://localhost:8080/webapp/lib/css/style.css" />
你挑吧。鉴于目标URL其他部分的动态性,建议使用最后一个
另见:
<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" />