关于IDEA和tomcat部署的问题,使用SSM框架。

发布于 2022-09-04 12:04:56 字数 564 浏览 14 评论 0

1.问题描述
背景:

项目名称为sf.
idea导出的war包是sf.war。在tomcat中webapps自动部署生成sf项目。
ssm框架中controller使用的是类别/方法。这样的路由。(例如client/login)
使用了静态资源配置:/resources/** --> /resources/
然后所有的请求url都是用的类别/方法进行的。 (client/login)。

问题:

使用idea进行运行和调试没有问题,都能访问。但是build出war放在tomcat中。
运行之后index的访问路径变成了localhost:8080/sf.所有的访问都需要加上一个sf作为前缀。
直接使用url输入之后,发现所有的资源都访问不到(访问路径没有项目名:   
localhost:8080/resources/img/....),url也没办法请求
(正确的应该含有sf,但是我的项目所有的请求都变成了localhost:8080/client/login)

请问,各位大神指导是什么原因么?我是需要怎么修改?难道每个访问和资源都需要把项目前缀加上去?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心是晴朗的。 2022-09-11 12:04:56

经过我的一番思考我发现了问题。
就是/的存在。我所有的资源都是用的/resources/,我一直以为这个的根目录是该项目,其实是webapps或者说是root。所以我将所有的前置/都去掉了,然后就解决了这个问题。。。。看来相对路径和绝对路径我还是没有理解透彻。

夏天碎花小短裙 2022-09-11 12:04:56

根据你的表述,给你提供解题思路如下:
tomcatconf目录下,有一个名为server.xml 的文件。在文件尾,<Host></Host>标签内部有类似这样的代码:

<Context docBase="D:\Program Files\tomcat8\webapps\test" path="/test" reloadable="true" source="org.eclipse.jst.jee.server:test" /> 

如果你希望去掉sf那个前缀路径,把path="/test"改为path=""。解释一下,path的属性值就是你访问项目时的路径前缀,也就是你纠结的那个sf。如果留空,代表访问域名后面不需要带项目的名称。授人以鱼不如授人以渔,问题的原因应该是在这里,至于sf这个路径是需要还是不需要,就由你自己决定了。
希望能对你有所帮助~!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文