Maven
/main/resources文件夹用于不代表Java类的类路径资源,例如i18n属性文件和各种配置文件(文本,xml,json等)。正是您想通过获取的资源
ClassLoader#getResourceAsStream()。
该文件夹不适用于公共Web资源(即,可通过公共
http://xxxURL 访问的文件)。您应该将这些Web资源文件放在Maven
/main/webapp文件夹中(在
/WEB-INF和外部
/meta-INF),就像您已经正确地为JSP文件(也是公共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,应该可以在绝对URL下访问CSS文件:
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其他部分的动态性,建议使用最后一个。



