原创

SpringBoot整合Freemarker项目ftl中使用include的异常

SpringBoot整合Freemarker项目,在开发中遇到一个闹心的问题。我的页面中需要引用一个公共页面,用的include方式,但是在运行项目后总是报错,在Idea中并没有异常提醒,编译也没异常。先看下图:

flyat 文章图片

看下项目文件结构:

flyat 文章图片

文件引用方式

flyat 文章图片

看似没错,header位于index文件同级的文件夹下,正常思维下,或者在jsp中就是通过common/header进行引用,并且在idea中这么写并没错误提示,但是在springBoot + freemarker中却不行,百度根本搜不到任何东西(PS:难道很少有人碰到这中问题么?还是我太low?),当时纠结了一天,我尝试将admin目录下的common里的东西提到和admin下的index同级目录里,都于事无补,问题依旧。最后将要放弃的时候,在application配置文件中看到了关于配置freemarker模板根路径的配置代码:

spring.freemarker.template-loader-path=classpath:/templates/

突然感觉到眼前一道光亮,心想springboot取模板文件时是不是只能从根目录下去找?比如我上边引用的common/header.ftl,在实际运行期加载时取得其实是/templates/common/header.ftl?这样的话就一定会找不到,然后我本着大胆怀疑大胆求证的态度果断试了下,

flyat 文章图片

看!idea编译时会提示有异常,但是!重启之后运行,问题解决了!

真tm坑爹。。。


正文到此结束