如何在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://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其他部分的动态性,建议使用最后一个。

以上是 如何在JSP中从/ main / resources链接Web资源文件? 的全部内容, 来源链接: utcz.com/qa/410587.html

回到顶部