我想在spring启动应用程序的html文件中简单地显示一个图像。
但是由于某些原因,我不能让它在一个特定的应用程序中工作。
我说"一个特定的应用程序"。因为我可以让它在另一个应用程序中以完全相同的方式工作。
是这样的:
放置tempLogo.jpg到文件夹/src/main/resources/static/images
.
src/main/资源/模板/home:
<img src="images/tempLogo.jpg"></br>
<img src="/images/tempLogo.jpg"></br>
<img th:src="@{/images/tempLogo.jpg}"></br>
<img th:src="@{images/tempLogo.jpg}"></br>
这些在app1中都不起作用。所有这些在app2中使用相同的代码和路径。
有趣的是,在app1中,我可以像这样成功地访问/static文件夹中的。css和。js文件:<link rel="stylesheet" type="text/css" href="/css/styles.css"/>
<script src="/scripts/scripts.js"></script>
/src/main/resources/static/css
/src/main/resources/static/scripts
不知道发生了什么,因为,就像我说的,在app2中,有相同的路径和代码,它确实工作。
经过一番挖掘,发现问题是Spring安全没有为images文件夹启用。于是在扩展WebSecurityConfigurerAdapter的类的configure方法中增加了web.ignoring().antMatchers("/images/**");
,效果很好。
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/css/**");
web.ignoring().antMatchers("/scripts/**");
web.ignoring().antMatchers("/images/**");
}