很初级的问题....关于虚拟路径中连接"/"回到根目录的问题
嗯,第一次遇到这个问题,不知道怎么回事。
tomcat 4.1.18
<Context path="" docBase="D:\\MyWEB\\information\\defaultroot" debug="0" reloadable="true"/>
<Context path="/test" docBase="d:/forum/test/" debug="0" reloadable="true" />
在test中建立测试页面,test1.jsp 内容为:
<a href="/" > test</a>
点击连接后,回到http://127.0.0.1/
怎么办呀?谁知道如何设定?
我需要的是http://127.0.0.1/test/啊
问题点数:120、回复次数:32Top
1 楼flashroom(找到啦)回复于 2003-08-04 08:17:05 得分 0
你的 path="/test"
你连到"/"当然是http://127.0.0.1/了Top
2 楼petalrain(西西)回复于 2003-08-04 09:03:01 得分 0
是啊,虚拟路径设置的好像是对的
就是程序里的语句的功能跟你的设想有出路
楼上说的是对的
Top
3 楼luckyfanjian(luckyfan)回复于 2003-08-04 09:06:48 得分 0
<a href="/test"></a>试试!Top
4 楼kongxiangli(笑看红尘)回复于 2003-08-04 09:49:56 得分 0
搞定了啊?Top
5 楼icecloud(冰云)回复于 2003-08-04 15:26:03 得分 0
不是这样啦!
我就是想设定一个虚拟目录,如localhost/test/
然后虚拟目录中的文件调用/的话,
会回到接到/test/。。
这样子...
Top
6 楼icecloud(冰云)回复于 2003-08-04 15:27:51 得分 0
flashroom(找到啦) ( )
你的 path="/test"
连到"/"当然是http://127.0.0.1/了
我知道啊,上面你说的是事实情况
但是我不想这样。我想在/test中调用/回到/test/
这样才行的
Top
7 楼icecloud(冰云)回复于 2003-08-04 15:42:36 得分 0
luckyfanjian(luckyfan)
你这个方法不行的。一旦我虚拟主机目录改了就找不到了。
kongxiangli(笑看红尘)
还没搞定呢,有什么方法吗?
主要是使用别人的论坛程序的时候发现的这个问题。
总不能让我一个个修改人家的文件吧
再说我自己也有这个毛病,喜欢用"/"
郁闷,加分Top
8 楼flashroom(找到啦)回复于 2003-08-04 16:12:50 得分 60
你可以开多个端口开多个HOST啊。
不就可以用‘/’了
好象只有这个办法。Top
9 楼icecloud(冰云)回复于 2003-08-04 23:10:53 得分 0
详细点... 还要开多端口啊?
用那个connector什么的?
真的只有这个方法么???
太郁闷了吧...
调用"/"是asp写程序的习惯。
iis就支持每个虚拟目录单独用/Top
10 楼icecloud(冰云)回复于 2003-08-05 09:34:25 得分 0
不爽,原来tomcat还有这个大问题
哪位高人露面指点一下。。。Top
11 楼transist(风动石)回复于 2003-08-05 11:53:06 得分 30
request.getContextPath()可以取得包根路径
具体再处理一下Top
12 楼solotarn()回复于 2003-08-05 14:52:05 得分 0
你可以把你的test设为默认的web application,这样在你调用href="/"时,这个"/"代表的就是你的test目录,具体做法:
<Context path="" docBase="yourTestRealPath" ..../>;
去掉原来的<Context path="" ...../>Top
13 楼solotarn()回复于 2003-08-05 14:54:21 得分 0
还有去掉你的<Context path="/test" ..../>Top
14 楼wellsoon(感谢wellsoon,请留个联系方式吧)回复于 2003-08-05 20:19:43 得分 0
./ 表示当前目录。
../ 表示上层目录。
../../ 上层的上层目录。
以此类推。
<a href ="./">返回当前目录主页 </a>Top
15 楼icecloud(冰云)回复于 2003-08-06 12:16:59 得分 0
solotarn() 我要的不是这个结果。
已经有一个根context,我需要建立一个新虚拟目录,如/bbs,但是bbs中有调用/的,
这样就回到了我的root中。
wellsoon(wellsoon) 难道在虚拟目录中调用struts得/xxx.do也得用../xxx.do么
transist(风动石) 这样会不会搞得太复杂了。。
哎,看来我只能是配置一个新的端口了,郁闷Top
16 楼sgdb(神天月晓)回复于 2003-08-06 13:11:27 得分 0
??
wellsoon(wellsoon)的方法不可以么??Top
17 楼beyondii(十万个为什么)回复于 2003-08-06 13:28:55 得分 0
不管你用什么语言写,只要是html的<a href="/">就肯定是根目录Top
18 楼hesi726(hesi)回复于 2003-08-07 12:40:58 得分 0
另外建一个虚拟主机吧!Top
19 楼icecloud(冰云)回复于 2003-08-09 20:57:56 得分 0
那么,怎么另外建立一个虚拟主机呢?Top
20 楼run(一路狂奔)回复于 2003-08-09 21:06:32 得分 30
为什么没试试transist(风动石)的方法?
request.getContextPath()可以取得包根路径
具体再处理一下
具体如:
href="<%=request.getContextPath()%>/"
Top
21 楼icecloud(冰云)回复于 2003-08-09 21:28:22 得分 0
因为这个是要采用别人的代码,如果要修改内容的话太繁琐了
所以想另外建立一个主机
我知道建立主机的方法,但是不会将第二个主机,如port:81和
相应的虚拟目录连接起来阿Top
22 楼woxiangwalkman(随身听)回复于 2003-08-09 22:05:20 得分 0
顶Top
23 楼ok281(ok280)回复于 2003-08-09 23:05:59 得分 0
关注Top
24 楼icecloud(冰云)回复于 2003-08-10 03:00:45 得分 0
没想到是个大麻烦。。。
大家继续讨论阿Top
25 楼lEFTmOON(我的小站(www.ismyway.com))回复于 2003-08-10 12:37:36 得分 0
顶Top
26 楼icecloud(冰云)回复于 2003-08-10 18:17:36 得分 0
我继续顶....
本贴的问题如下:
>> 在系统中要采用其他人开发的论坛等系统,但系统中采用了/进行转向或绝对链接
>> 但如果设定一个/bbs虚拟目录作为该论坛的目录的话,其"/"链接指向了web的根目录
>> 即指向http://localhost/而不是http://localhost/bbs/
希望的解决方法:
>> 本以为Tomcat的server.xml配置可以解决此问题,但好像没有人成功过
>> IIS本身就支持这种用法,希望tomcat今后的版本加强
折衷的解决方法:
>> 采用request.getContextPath(),在每个链接的前面加上虚拟目录名
>> 但其方法不适用于已经成形的系统。修改大量链接可能比较麻烦
一些猜想或推测:
>> 在使用了struts的系统中,进行/xxx.do的调用不知道会产生什么结果。
>> 如果是用/bbs/xxx.do又是什么结果呢? 没有进行过测试。
现在需要的解决方案如下:
>> 在tomcat中建立第二个虚拟主机,并将相应的虚拟目录与虚拟主机相对应
>> 建立主机容易,修改<connector>这句,但无法与目录对应
希望大家都来关注...
Top
27 楼icecloud(冰云)回复于 2003-08-11 11:17:03 得分 0
up..Top
28 楼icecloud(冰云)回复于 2003-08-12 02:14:48 得分 0
继续up...Top
29 楼Rabbit8(剑.花.烟雨.江南)回复于 2003-08-12 10:04:01 得分 0
MarkTop
30 楼icecloud(冰云)回复于 2003-08-12 20:14:00 得分 0
继续up...
Top
31 楼icecloud(冰云)回复于 2003-08-13 23:31:20 得分 0
......Top
32 楼icecloud(冰云)回复于 2003-08-16 02:55:15 得分 0
本问题已经搞定了!!! 哈哈哈哈
解决方法是在tomcat中新增一个服务(service),监听81端口,将虚拟目录配置到新的service中。
这样,通过localhost:80和localhost:81分别访问两个不同的webapp,
就可以将bbs等配置上了Top




