天天看点

静态资源资源路径管理总结

/a/b/c:绝对路径,从域名后的绝对。

a/b/c:相对路径,从当前位置开始开始相对。

以前做过的项目路径配置:

1、使用../的相对路径

若是域名/项目名/xx.jsp。则是相对于jsp页面的相对路径。

若是通过Controller跳转,则是相对与Controller的访问路径。(e.g. /域名/项目名/xx.do),如果是restful风格的url,相对的是整个url的路径。e.g. 域名/项目名/get/tom,其中tom仅仅是参数,但是返回页面后,页面的静态资源的路径也是相对于域名/项目名/get/tom的。所以这会导致页面的../会受url影响,不统一。

2、使用basePath的绝对路径

在本地没有问题,但是如果走nginx反向代理,用户访问的项目路径会与实际路径做映射,而使用request.getContextPath()等获取的都是本地路径,对外界来说是无法访问的。

3、使用/

当不带项目名访问是没问题,但是如果带项目,正确路径domain/项目名/a.css

直接使用/a.css,--> domain/a.css

解决方案,为各环境配置项目访问路径(profile),读取路径放入application上下文,在页面通过el获取。

关于某个问题的解决方案,实施起来看起来确实不难,但是得出这个解决方案的过程却并不是如此轻描淡写的,这中间会经过很多尝试与思考,为什么要采用这个方案,其他方案方案也可以,为什么不采用,(可能存在潜在的隐患,所以不采用,这些潜在的隐患也是要我们去考虑的),最终是基于什么原理去得到这样的方案的。

继续阅读