默认情况下,Spring Boot 项目中静态资源存放在 src/main/resources/static
、src/main/resources/public
、src/main/resources/resources
或 src/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,正确的写法如下图所示:
上图中,<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 项目应该都有),如下图所示:
然后我们在 Web Resource Directory
中添加两个目录 src/main/resources/static/
和 src/main/resources/templates
,相对于网站根目录都是 /
,如下图所示:
然后,依次点击 Apply
、OK
按钮关闭 Project Structure
对话框。
回到模板文件中,可以观察到,Cannot resolve controller URL
的警告已经消失了;试一试,文件导航功能也回来了:
参考文档: