南联企业网站建设/磁力搜索引擎
目录
- 一、异常错误
- 二、原因
- 三、解决方法
- 方法1. 将无法编译的静态资源放入可编译目录下
- 方法2. 重新编译项目加载资源
- 方法3. 修改pom.xml资源配置文件
- 方法4. 不连接远程数据库启动,使用本地数据库
一、异常错误
Springboot使用thymeleaf,并连接远程数据库启动时,无法加载resources中的静态资源
浏览器报错
Failed to load resource: the server responded with a status of 404 ()
后端启动时报错
Servlet.service() for servlet [dispatcherServlet] in context with path [/ce] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: Error resolving template
前端打开页面时后端报错
Exception processing template "/web/studyOutline/studyOutline": Error resolving template [/web/studyOutline/studyOutline], template might not exist or might not be accessible by any of the configured Template Resolvers
二、原因
打包编译项目,显示找不到js、css、html等静态资源,但本地路径并没有写错,于是我去找编译文件,查看是不是静态资源没有编译到,打开项目下的target文件夹
前往classes文件夹,发现项目resources下对应的templates韦文件夹没有编译到,缺少静态资源,当然会报错了
三、解决方法
方法1. 将无法编译的静态资源放入可编译目录下
既然服务器不能编译templates文件夹,那么把templates文件夹放入calsses路径下即可,这样处理就能获取templats下的静态资源了,但如果静态资源有改动,需要手动放入classes文件夹下,再次启动项目即可读取资源
如果再次启动项目,还是显示找不到js、css、html等静态资源,请看方法2
方法2. 重新编译项目加载资源
由于服务器编译拦截了静态资源,导致出现异常,需要重新打包编译
打开IDEA带的Maven管理,双击clean清除由项目编译创建的target
再双击install安装jar包到本地仓库
项目打包出现异常
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Using 'UTF-8' encoding to copy filtered properties files.
系统默认编码是GBK,maven提升需要使用UTF-8,在setting中修改项目编码为UTF-8
出现 Failed to execute goal是由于测试用例有问题,
Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-test) on project springboot_04_profile: Input length = 1 -> [Help 1]
选择跳过测试用例
再次双击install,编译成功,启动项目即可读取静态资源
如果设置编码还是打包失败,或者显示找不到js、css、html等静态资源,请看方法3
方法3. 修改pom.xml资源配置文件
如果设置编码还是打包失败,或者显示找不到js、css、html等静态资源,说明服务器没有访问资源的权限,需要在pom.xml的build下引入资源文件
<!-- 引入静态资源文件 --><resources><resource><directory>src/main/resources</directory><includes><include>**/*.css</include><include>**/*.js</include><include>**/*.html</include><include>**/*.png</include><include>**/*.properties</include><include>**/*.yml</include><include>**/*.xml</include><include>**/*.conf</include></includes></resource></resources>
再次insall,显示打包成功,浏览器404的问题也解决了,加载了静态资源
方法4. 不连接远程数据库启动,使用本地数据库
开头说了,Springboot使用thymeleaf,并连接远程数据库启动时,无法加载resources中的静态资源,这是一个大坑,如果不连接远程数据库启动,则不存在服务器访问资源的问题
打开application.properties配置文件,注释掉连接远程数据库的代码,改用本地数据库,就不会有访问资源的问题了,可以直接加载,浏览器不再出现Failed to load resource问题
异常索引
- Failed to load resource: the server responded with a status of 404 ()
- Servlet.service() for servlet [dispatcherServlet] in context with path [/ce] threw exception [Request processing failed; nested
exception is org.thymeleaf.exceptions.TemplateInputException: Error
resolving template- Exception processing template “/web/studyOutline/studyOutline”: Error resolving template [/web/studyOutline/studyOutline], template
might not exist or might not be accessible by any of the configured
Template Resolvers- [INFO] Using ‘UTF-8’ encoding to copy filtered resources. [INFO] Using ‘UTF-8’ encoding to copy filtered properties files.
- Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources
(default-test) on project springboot_04_profile: Input length = 1 ->
[Help 1]