JavaWeb项目中的URL

几种Web项目中的URL:
1,以协议开头的URL,例如http://www.exampl.com:8080/project1/img/example.png ,这个很清楚写什么就是什么。
2,以/开头的URL,如/project1/img/example.png,这种URL在浏览器中会被解析成域名根路径+URL为完整的URL,(http://www.exampl.com:8080/project1/img/example.png)
3,以单词或者./或../等开头的URL,这种会基于当前网页的URL获取相对路径,例如在http://www.exampl.com:8080/project1/ 页面下img/example.png会被解析为http://www.exampl.com:8080/project1/img/example.png

小型的web项目习惯于用子目录而不是子域名来区分,类似于http://www.exampl.com/project1/ 这样,这样就有了本文处理的问题。 
在模版页面中时(jsp,FreeMark等)处理方法很多,并没有什么大问题,例如在jsp中url写成例如<%=request.getContextPath()%>+url(其他还有些静态资源文件模板url方法不赘述了,例如c:url,spring:url等)
但是在css和js代码中使用url时由于没了模板功能就需要另外的方法来获取项目目录了。
一,在每个页面(模版页面)中把项目目录写入js变量
<script>var contextPath = '<%=request.getContextPath()%>';</script>
二,在每个页面(模版页面)中添加一个base标签写入基本路径为项目路径
<base href="<%=request.getScheme()%>://<%=request.getServerName()%>:<%=request.getServerPort()%><%=request.getContextPath()%>/"/>
这样页面(js或者css样式)内使用第三种路径时就会基于base标签内设置的根路径计算相对路径了(这只会影响页面内和js中ajax请求的url不会影响引入的css文件中引用图片的url)。

以上方法配合模板同时使用,这样可以防止必须使用相对路径时保证路径不会出错。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值