关于路径引用的问题(内含图片)

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,这里使用的是相对路径的书写方式。

与静态的html不同,ftl文件会在服务器运行时,动态生成html文件,而这个html文件相当于放置在webapp根目录下。

此时,如果ftl中需要引入js或css文件,使用相对路径时就是在根目录下的某个子目录,也就是当前目录下的子目录。而当前目录的路径写法是以“.\”开头的。


例如同学图中的index.ftl在运行时,同学可以浏览器的控制台中查看临时生成的动态html位置,如下图:

https://img1.sycdn.imooc.com//climg/62d0f84709a0ec8903730257.jpg

可以发现,这里的index实际上是与resources目录同级的,所以使用相对路径的写法就可以正确引入js文件了。

祝学习愉快~

  • 晓舟 提问者 #1

    我按照idea里的工程目录结构推导出来的相对路径(见提问区图片红色文字]也可以正常解析,这是什么原因呢?按理说不同的相对路径应该有一个报错才对。

    2022-07-15 13:21:23
  • 晓舟 提问者 #2

    按照idea工程目录结构里index.ftl所在的位置推导出的相对路径,tomcat启动后,页面正常显示,具体原因是什么?

    2022-07-15 13:29:36
  • 好帮手慕小蓝 回复 提问者 晓舟 #3

    同学你好,这里可能是因为解析优先级的问题。一般情况下,解析时都会先去尝试解析判断是否是绝对路径,如果不是的话再去解析为相对路径。

    老师这里对FreeMarker的底层实现方式也不是很清楚,只能根据其他框架的实现原理做出猜测:

    FreeMarker这里由于涉及动态生成,老师猜测很可能会先按照项目中的目录结构解析,如果无法找到对应文件,再按照服务器目录结构进行解析。或者是相反的解析顺序。

    无论使用哪种解析顺序,只要能够正确找到文件,就不会报错了。

    祝学习愉快~

    2022-07-15 13:53:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师