首页 新闻 会员 周边 捐助

Springboot war包部署外部tomcat的请求

0
悬赏园豆:140 [已关闭问题] 关闭于 2018-01-18 15:47

我的是1.5.4版本的springboot,通过war打包,部署到外部tomcat运行。

现在有个问题就是,我访问登陆页通过  localhost:[端口号]/war包文件名/  该链接可以成功访问到我的该页面,但是在登陆页中登陆按钮是js写的,访问的时候链接是 localhost:[端口号]/login.do,在login.do上一级少了个war包文件名。设置过server.contextPath,同样无效。求问,怎样可以使该项目的访问路径都会该有war包文件名。

JhonMr的主页 JhonMr | 初学一级 | 园豆:2
提问于:2018-01-04 16:51
< >
分享
所有回答(3)
0

我大概明白你的意思了。你是说,你发布了一个war包。打开首页时,是成功的。但是,点击登陆按钮时,跑转的action地址不正确。是这样的吗?你可以把你这个页面的代码贴出来吗?

David5201 | 园豆:534 (小虾三级) | 2018-01-04 17:02

是通过Ajax请求的,部署上tomcat去,该项目的上下文不是应该默认是在该项目文件下。怎样访问该login.do的url应该是在/war包文件名 该上下文下才对呢。如果是逐个逐个去添加显然不太现实。因为该项目出包名称未定,而且还有非常多的请求包括静态资源的访问。

支持(0) 反对(0) JhonMr | 园豆:2 (初学一级) | 2018-01-04 17:07

@JhonMr: 跟用什么提交方式无关。你是想灵活部署你的项目,你的是JSP页面吗?

支持(0) 反对(0) David5201 | 园豆:534 (小虾三级) | 2018-01-04 17:10

@David5201: 是Html页面

支持(0) 反对(0) JhonMr | 园豆:2 (初学一级) | 2018-01-04 17:11

@JhonMr:   url : <%=request.getContextPath()%> + ”/login.do",

支持(0) 反对(0) David5201 | 园豆:534 (小虾三级) | 2018-01-04 17:13

 你这是有动态内容请求了。你把它变成 jsp页面。在页面的上部,加

<%@ page contentType="text/html; charset=UTF-8"%> ,你可以用编辑器带格式的把代码分享出来。方式一次性的解决问题。

支持(0) 反对(0) David5201 | 园豆:534 (小虾三级) | 2018-01-04 17:15

@David5201: 是说每个都url请求都需要这样配置吗?但是这样实现不太好呀,项目中引用了很多的框架样式和js文件,还有许多的请求喔

支持(0) 反对(0) JhonMr | 园豆:2 (初学一级) | 2018-01-04 17:15

@JhonMr: 可以把你的项目直接放到Tomcat的ROOT下。也就是你的项目名称变成了ROOT,可以不用配置。

我也想学习一下,是否有其它方法。

呵呵,看有没有大牛给点简单方法。。 另,如果你的一js框架,是公司的,建议在网上找CDN来代替

支持(0) 反对(0) David5201 | 园豆:534 (小虾三级) | 2018-01-04 17:29

@David5201: 好的,感谢回复。

支持(0) 反对(0) JhonMr | 园豆:2 (初学一级) | 2018-01-04 17:58
0

把斜杠去掉试试,另外资源拦截的时候,对js css 什么的放行了么

世间草木 | 园豆:202 (菜鸟二级) | 2018-01-04 17:25

哪个斜杠?js和css是放行的,拦截器只是拦截js的部分请求。

支持(0) 反对(0) JhonMr | 园豆:2 (初学一级) | 2018-01-04 17:28
0

终于找到答案了,是因为外部部署的话,ContextPath自动设置为文件名,那么我们所有的请求,包括静态资源的路径都需要使用相对路径。比如上图的/login.do需要改成login.do,去掉前缀斜杠,因为前置斜杠会覆盖掉我们contextPath该路径。

JhonMr | 园豆:2 (初学一级) | 2018-01-08 18:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册