首先声明一点所有超连接,图片,css地址,js地址必须要以全地址.
这样的做法是最使用的.
?
上网看到很多文件都说连接问题,看到了很多文件都用<%=request.getContextPath()%>做为地址的前缀。
这个是没错误的,但是某些环境下可能不适合用.先了解一下我们的场景.
?
?
webRoot | ? |
/ | mobile1 |
/ | mobile2 |
/ | image |
?
?
?
第一 分为静态文件和动态文件.
动态文件分为jsp,servlet,do,.dwr等连接.
静态文件为css,js,jpg,gif等后缀连接.在这里说明一点css里如果有图片声明,图片头地址是继承css头地址.
解决方案:
在上边我们应该声明一些变量,定义为动态连接和静态连接的头比如说
<img src="${staticurl}/images/gif_45_110.gif" width="20" height="20">
<a href="<%=request.getContextPath()%>/xxx/xxx.do">登录</a>
这样在大型网站架构上可以避免以后返工的情况,staticurl可以在启动工程的时候初始化
?
第二 相对一个web工程可以由多个域名访问不同的目录.
这里也分为两种情况
为和死连接
死连接比如说带域名的连接
http://ww1.javapk.com/mobile1/index.jsp
http://ww2.javapk.com/mobile2/index.jsp
这样的连接我们最好还是采用变量的方式来处理.
<a href="{domain1}/mobile1/index.jsp">模块1</a>
<a href="{domain2}/mobile2/index.jsp">模块2</a>
动态连接指的是无论什么域名连接到这个页面都以相同的头作为解析.
这个应该比较简单用<%=request.getContextPath()%>就可以了
?
(提示:应该考虑开发环境和生产环境不同从而选择不同的地址便于团队调试开发).
?