如何解决 Intellij IDEA 无法正确识别 Spring Boot 模板文件中静态资源路径的问题

默认情况下,Spring Boot 项目中静态资源存放在 src/main/resources/staticsrc/main/resources/publicsrc/main/resources/resourcessrc/main/resources/META-INF/resources中,模板文件存放在 src/main/resources/templates 中。

假设我们的项目中需要用到一个 js 库(这里以 layui 为例),我们将它放入 src/main/resources/static/jslib 目录;在模板文件 src/main/resources/templates/greeting.html 中我们需要引用 layui.css 和 layui.js,正确的写法如下图所示:

Intellij IDEA 无法正确识别 Spring Boot 模板文件中静态资源的路径

上图中,<link rel="stylesheet" href="/jslib/layui/css/layui.css"><script src="/jslib/layui/layui.js"></script> 两行的写法是正确的,如果启动并访问项目,可以观察到资源被正常加载。但 Intellij IDEA 在这里提示 Cannot resolve controller URL,按下 Ctrl 键(macOS中是 Command 键)也无法导航到文件。虽然算不上什么大问题,但仍然给我们的开发带来不少麻烦。

那么,这个问题该怎么解决呢?

首先,通过 File 菜单打开 Project Structure 对话框,从左侧面板选中 Facets,在右侧面板中选中 Web - Web(项目名.main)(标准的 maven 项目应该都有),如下图所示:

Project Structure Dialog

然后我们在 Web Resource Directory中添加两个目录 src/main/resources/static/src/main/resources/templates,相对于网站根目录都是 /,如下图所示:

Web Resource Directory Sample

然后,依次点击 ApplyOK 按钮关闭 Project Structure 对话框。

回到模板文件中,可以观察到,Cannot resolve controller URL 的警告已经消失了;试一试,文件导航功能也回来了:

Intellij IDEA 可以识别到 Spring Boot 模板文件中静态资源的路径了

参考文档:

  1. Spring Boot Reference Guide - 29.1.5 Static Content
  2. Spring Boot Reference Guide - 29.1.10 Template Engines
  3. IntelliJ IDEA Help - Web facet page

转载于:https://my.oschina.net/htgylzhq/blog/3015290

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值