Tit*_*ito 10 css spring maven spring-boot
好吧,我有一个正常运行的spring-boot应用程序在本地计算机上运行.但是我注意到当我做mvn包时,我的css或java脚本都找不到
/src/main/wepapp/css
Run Code Online (Sandbox Code Playgroud)
正被复制到目标目录中创建的jar文件(包)中.
弹簧靴参考指南说
65.3将现有应用程序转换为Spring Boot"可以在类路径根目录中将静态资源移动到/ public(或/ static或/ resources或/ META-INF/resources)."
24.1.4静态内容"如果你的应用程序打包为jar,请不要使用src/main/webapp文件夹.虽然这个文件夹是一个通用的标准,但它只适用于war包装,大多数构建都会默默地忽略它如果你生成一个jar的工具."
这意味着我可以将所有js和css文件夹放入文件夹中
/src/main/resources/static
Run Code Online (Sandbox Code Playgroud)
即现在我的结构看起来像那样
/src/main/resources/static/css/
/src/main/resources/static/js/
Run Code Online (Sandbox Code Playgroud)
然而,我所有的百里叶模板仍然位于
/src/main/resources/templates/
Run Code Online (Sandbox Code Playgroud)
我做到了,据我所知,我需要将ResourceHandler添加到我的ResourceHandlerRegistry.以前当我的所有cc都在"/ src/main/wepapp/css /"中时,我的ResourceHandlers看起来就像那样,它对我来说效果很好.
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/pdfs/**").addResourceLocations("/pdfs/").setCachePeriod(0);
registry.addResourceHandler("/img/**").addResourceLocations("/img/").setCachePeriod(0);
registry.addResourceHandler("/js/**").addResourceLocations("/js/").setCachePeriod(0);
registry.addResourceHandler("/css/**").addResourceLocations("/css/").setCachePeriod(0);
}
Run Code Online (Sandbox Code Playgroud)
我尝试过添加多个处理程序
registry.addResourceHandler("/css/**").addResourceLocations("/css/").setCachePeriod(0);
Run Code Online (Sandbox Code Playgroud)
要么
registry.addResourceHandler("/css/**").addResourceLocations("/static/css/").setCachePeriod(0);
Run Code Online (Sandbox Code Playgroud)
要么
registry.addResourceHandler("/css/**").addResourceLocations("/").setCachePeriod(0);
Run Code Online (Sandbox Code Playgroud)
等等
但他们都没有为我工作.显示html模板,但在尝试查找/css/corresponing.css或/js/corresponing.js时,Web浏览器控制台正在重新编辑404
我故意在我的测试项目中禁用Spring安全性,以简化此问题的调试.
我还没有完全理解的另一件事是部署程序集.我已经阅读了一篇文章说当我想将特定文件夹放入maven生成的目标包jar文件中时,我确实需要将这些文件夹包含到我的部署程序集中,但是我确实做了"mvn package"仍然没有进行将my/src/main/static文件夹的所有内容(包含子文件夹)放入目标jar文件中.然而,我看到"templates"文件夹被复制到jar文件中.所以现场背后还有其他一些魔法.
这是我如何在我的百里香布局中声明css即
/src/main/resources/templates/layout.html
<!DOCTYPE html>
<html>
<head>
<title layout:title-pattern="$DECORATOR_TITLE - $CONTENT_TITLE">Task List</title>
<link rel="stylesheet" type="text/css" media="all" th:href="@{/css/syncServer.css}" href="../css/syncServer.css" />
...
</head>
<body>
...
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的问题是:到目前为止我完成的配置是否正确,如果是这样,我需要注意哪些其他选项/设置才能让应用程序找到css文件位于/ src/main/static/css /
另外一个
测试项目
git@github.com:TheDictator/sArchitecture.git
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14589 次 |
最近记录: |