请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

webapp下路径设置

开发工具idea
shopoperation.html的相对路径为:

WEB-INF/html/shop/shopoperation.html

在shopoperation.html中引用common.js

<script type='text/javascript' src='../resources/js/common/common.js'
        charset='utf-8'></script>

…/不是上一层目录的意思吗,…/返回的是shop文件夹目录,怎么会找到 common.js的。难道…/返回的是文件的根目录即webapp目录下?这是第一个问题。
第二个问题,我直接在src里填写common.js的相对路径,为啥不起作用

src='resources/js/common/common.js'

必须要加

../

请老师指教

正在回答 回答被采纳积分+3

1回答

翔仔 2019-05-09 00:03:40

同学好,这两个是同一个问题吧。。其实你可以直接看看你的idea是如何打包的项目,然后去到idea发布项目的最终路径看看项目实际长什么样子,就知道为什么这样能定位到js文件了,打包之后发布的样子跟你idea项目里面看到的文件结构是不一样的

https://blog.csdn.net/zmx729618/article/details/78340566


0 回复 有任何疑惑可以回复我~
  • 提问者 一只追梦的兔子 #1
    我对老师这个回复感觉有点遗憾,也许是我没说明白,老师没有get到重点,另外你说的最后发布项目文件结构我也看过了,没有思路解决我的问题,如果这里能贴图的话,我会将发布后的文件目录结构截图给老师看。
    我自己研究了一天,发现这个和springMVC访问静态资源有关,我看了几篇博客讲解(https://blog.csdn.net/caokang1314/article/details/47750267,https://www.cnblogs.com/canger/p/6093452.html),里面很清楚地讲解了springMVC访问静态资源的方法,但是这里只涉及到了后台的讲解,依然没有解决我提出的前端html引用js资源的路径问题,为什么访问时要在相对路径前加../。
    也许我运气好,我看到一篇博客和我的问题一模一样,https://blog.csdn.net/w_linux/article/details/80557822
    原博文给出了他的理解。原文最后一段最重要,他指出如果shopoperation.html放在webcontnt根目录下,也就是idea中的webapp下,访问静态资源common.js不需要加../,直接加该文件的相对地址resources/js/common/common.js,就可以访问到。若放在WEB-INF目录下,就需要在相对地址前加../即../resources/js/common/common.js,就可以访问了。至于为什么加../他给出的理解是:因为现在shopoperation.html文件在WEB-INF内,需要用../回到根目录。另外,他同时指出,跟控制器的requestmapping也有关系,具体的内容在最后一段话写出。
    可是我没有明白他说 ../的作用时返回根目录即返回到webapp目录下,../不是返回上一层吗,怎么会返回根目录即webapp目录下呢。这里不能截图,要不截图给老师看了。我看了我打包好的源文件,shopoperation.html上一层目录的确是shop,离webapp这个目录还有好几层关系。
    回复 有任何疑惑可以回复我~ 2019-05-09 17:10:45
  • 提问者 一只追梦的兔子 #2
    由于字数原因,无法一次性将字都发出,以下内容接我上面的那一段:
    
    于是我又做了个实验,不加../ 访问:ahttp://localhost:8080/o2o/shopadmin/shopoperation,发现common.js的请求路径是 http://localhost:8080/o2o/shopadmin/resources/js/common/common.js,common.js文件获取不到。
    加了../  访问http://localhost:8080/o2o/shopadmin/shopoperation
    发现common.js的请求路径是 http://localhost:8080/o2o/resources/js/common/common.js,common.js文件获取到。
    这两者common.js的请求路径的区别在于多了一个shopadmin,会不会../与这个有关系?
    总之最后的结论是,依然没有很准确地得知加../的缘由,只记得在下次运用地时候,两个都试试。
    回复 有任何疑惑可以回复我~ 2019-05-09 17:11:59
  • 翔仔 回复 提问者 一只追梦的兔子 #3
    同学好,我觉得先前已经完全get到你的点了,可能表达得比较模糊,你发布的项目的实际结构和你在idea里看到的项目结构是不一样的,比如说你看到的src/webapp/WEB-INF这样的结构实际上在项目打包并发布之后,并不是这样子的,它实际变成了o2o/WEB-INF,o2o/resources这些,项目根目录是o2o,你的js文件在resources下面,所以而你的html在WEB-INF里,此时你的../就是退回到根目录之后再前进到resources目录下的js文件里面去。主要就是这个原因,可为什么要用遗憾来形容呀。。
    回复 有任何疑惑可以回复我~ 2019-05-10 00:43:39
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信