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变量

二,在每个页面(模版页面)中添加一个base标签写入基本路径为项目路径

这样页面(js或者css样式)内使用第三种路径时就会基于base标签内设置的根路径计算相对路径了(这只会影响页面内和js中ajax请求的url不会影响引入的css文件中引用图片的url)。

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

 

你可能感兴趣的:(JavaWeb)