如何在JSP中从/ main / resources链接Web资源文件?
我的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属性文件和各种配置文件(文本,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 |-- 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其他部分的动态性,建议使用最后一个。
以上是 如何在JSP中从/ main / resources链接Web资源文件? 的全部内容, 来源链接: utcz.com/qa/410587.html