JavaEE 项目的页面( html, jsp)引用资源时的路径真不好整,请问最佳实践是什么

2017-05-22 22:22:08 +08:00
 abcbuzhiming
javaee 项目都是部署在 Servlet 容器服务器里,典型的如 Tomcat 和 Jetty,这类项目有个特点,他们给你的访问地址都是带 app 路径的,比如
http://localhost/webapp/xxx/yyy/zzz
要死就死在这个 app 路径(上下文路径)上,搞的我的模板文件( jsp 或 html 或者别的什么)引用资源的时候,路径完全没法写,你写绝对路径 /assert/a.jpg。结果指向的是 http://localhost/assert/a.jpg,没有 webapp 路径,访问不到,你要搞个相对路径吧:assert/a.jpg,遇到什么 forword,还有 springmvc 之类的地址映射会不知道飞到哪里去。
我在网上找了半天,也就找到了一个针对 jsp 的方案,改成${pageContext.request.contextPath}/assets/a.jpg,但是问题是这${pageContext.request.contextPath}就只有模板是 jsp 的时候才认啊,换成 html 就不生效了了。

所以 javaee 项目的模板引用资源文件路径的最佳实践到底是啥?
4848 次点击
所在节点    Java
26 条回复
1023400273
2017-05-23 12:22:50 +08:00
request.getContextPath()?
af463419014
2017-05-23 14:31:17 +08:00
我们这里的做法:
全部 html 改成 jsp

有的一个 jsp 里就只用${pageContext.request.contextPath}这个功能,其他内容跟原 html 一样
因为本来 jsp 里写 html 格式也不变,一模一样的
darrenfang
2017-05-23 20:17:32 +08:00
<c:set var="path" value="${pageContext.request.contextPath}"/>
然后用${path}来引用路径
darrenfang
2017-05-23 20:18:59 +08:00
@darrenfang 页面都是 jsp,没有 html
honam
2017-05-24 10:10:40 +08:00
贼尴尬。。。
wusj
2017-07-25 12:34:15 +08:00
搭车顺便问一下,要是在 js 文件里又怎么获取这个路径?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/363068

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX