Could not parse as expression: “/lib/tocbot/tocbot.min.js“ (template: “_fragments“ - line 89, col4

卫松
2023-12-01

1.烦人的Could not parse as expression: “/lib/tocbot/tocbot.min.js” (template: “_fragments” - line 89, col4

2022-01-02 17:06:11.371 ERROR 20548 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    :
 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: 
An error happened during template parsing (template: "class path resource [templates/admin/login.html]")] with root cause
Caused by: org.thymeleaf.exceptions.TemplateProcessingException: 
Could not parse as expression: "/lib/tocbot/tocbot.min.js"
 (template: "_fragments" - line 89, col 49)

网上找的答案很多,配置问题、fragment引用、自定义拦截器等等,最终发现是fragments的引用问题。
试完很多的方法后,终于受不了了,直接把js给干掉了,然后报了真正的错误出来:_fragments那里出错了。终于找出来:是因为路径错误

<!--/*/<th:block th:replace="_fragments :: script">/*/-->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.2/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>
<!--/*/</th:block>/*/-->

这里的_fragments在admin目录下,所以要改成admin/_fragments.
因为themleaf模板的 是灰色的,看起来像注释,容易让人误以为这是没用的东西,在模板下这是有用的,一定要注意,细心细心!

2.APPLICATION FAILED TO START报错无法启动

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to bind properties under 'logging.level.file' to org.springframework.boot.logging.LogLevel:

    Property: logging.level.file
    Value: log/blog-dev.log
    Origin: class path resource [application-dev.yaml] - 17:11
    Reason: failed to convert java.lang.String to org.springframework.boot.logging.LogLevel (caused by java.lang.IllegalArgumentException: No enum constant org.springframework.boot.logging.LogLevel.log/blog-dev.log)

Action:

Update your application's configuration. The following values are valid:

解决方法:检查yml文件或者properties文件的格式错误,这里是空格问题,如下:

logging:
  level:
    root: WARN
    com.chen: INFO
	file: log/blog-pro.log

file要顶格写:

logging:
  level:
    root: WARN
    com.chen: INFO
file: log/blog-pro.log

3fragments渲染失败

如何项目中有两个_fragments,要将两个_fragments区分开,比如说:改一下head的名称:

<head th:fragment="head(title1)"> 
title 改成 title1即可

或者是路径的问题:两个_fragments并不在一个目录下,在引入的时候要注意_fragments的路径,如:_fragments和admin/_fragments。

暂时的心得

一个项目中涉及到的知识操作太多,遗漏一些,或者一下忘了该怎么用,或者出现的各种各样的问题、报错,都很正常,有时候错误真的是一个很不起眼的东西,但就是一样的东西就能让你排很久的错误。
在此给自己几个提醒:

  1. 在写代码的时候,先明确自己的目的,该写什么样的代码,不要急匆匆就直接上手敲敲敲,动手之前理清楚代码之间的关系很重要,敲代码打字快没有用,要保证准确性。

  2. 遇到问题、bug的时候不要盲目的改动自己的代码,涉及到删除文件一定要备份好,当然在IDEA中找回也是可以的。

  3. 在做项目的过程中确保自己的代码保存了再退出IDEA,因为有时候直接退出IDEA不会保存你修改过的代码。

  4. 在理清楚代码的问题出在哪里的时候,也不要着急去百度找答案,先看错误信息,看自己能不能看懂然后再去自己尝试解决错误,不要过渡依赖别人的经验,因为每个人遇到的问题不一定就是一模一样的,自己经历和借鉴别人的经历是不一样的。自己亲自debug试出来解决错误的以后再遇到可以秒杀,借鉴别人的可能以后遇到还是得百度各种搜索。

  5. 人脑不是电脑,装的东西很有限,所以遇到问题要思考,思考要有结果,结果有了得会总结,不然遇到的问题以后还是不会。

  6. 重重重:切记不可眼高手低,对于知识掌握程度不够不要轻易去尝试模仿视频,因为这样的意义不是很大,不知道其中的含义是什么的话,只不过是在抄代码浪费时间罢了。小声逼逼:当然也不是完全没有好处啦,至少了解了项目的基本开发流程。

 类似资料: