前言
这种办法修改办法针对的是使用自己配置的tomcat容器运行项目, 如果有使用的Maven启动服务需要去加个相关配置,这个写的时候恰好CSDN崩了,也就没法加链接,各位maven有这个问题,就麻烦自己手动再去定向搜索下了
背景
最近接手了公司一套老项目 使用的是SpringMVC+jsp前后端交互,对于tomcat这边好长时间没有使用了,出了一堆问题,比如这个问题本地启动的时候项目带了
localhost:8080/[包名]/xxxx
结果导致出了一堆问题,比如能正常访问基本页面,但是跳转的时候仍然使用的是传过来的链接
localhost:8080/xxxx
导致服务器报错404找不到该页面,只有重新在8080后面再加包名才能使用,但是在跳转的页面上添加很不现实
问题定位
于是百度了相关的问题
基本的解决办法是在自己配置的Tomcat中,在conf下找到server.xml 用文本编辑器打开,
找到"<Host></Host>
"标签
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<!--在这里添加context标签-->
<Context docBase="[项目在tomcat中的存放位置,webapps下的包]" path="" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
这样解决有个坏处,治标不治本,每个项目都得去打开tomcat下的文件手动去配置下,而且还要指定目录,直接给写死了.很麻烦.
好在使用的是idea,之前在idea中已经将tomcat配置好了,琢磨了下,发现在配置中能修改context配置
解决办法
1 打开Edit Configuration
2 找到Server标签, URL文本框 这里去掉链接后的包名
3 选择Deployment 标签 选择Application context 去掉包名将context设置为 空
重启运行项目即可解决
总结
这种办法虽然还有点麻烦,但是胜在简单快捷,不用来回CV去搜索,也方便记忆. 也不知道这个配置后续的其他包会不会也应用这种,如果应用了,那这个办法不失为一个良策.Good,Job!