1)我使用纯java配置配置了应用程序。 除了css / js / images之外,一切似乎都正常工作。该应用程序可在Github上找到
https://github.com/rajendersaini/cabms/
只想指出配置
AppConfig - spring mvc config - 使用
注册资源registry.addResourceHandler("/resources/**")
.addResourceLocations("/WEB-INF/resources/").setCachePeriod(31556926);
并在SecurityConfig中 -
http.authorizeRequests()
.antMatchers(LoginController.AUTHLOGIN,
ResourceConfig.RESOURCE_PATH_MATCHER).permitAll()
.anyRequest().authenticated().and().formLogin()
.loginPage(LoginController.AUTHLOGIN);
你能帮忙解决这个问题吗?
答案 0 :(得分:1)
您的静态资源在战争文件中的哪个位置?我问,因为你在WEB-INF目录下有它们。我不知道Spring是否允许您使用WEB-INF提供公共内容。
在我的构建中,我有
下的静态内容src/main/webapp/resources/...
/css
/js
/img
这样,它们最终位于/ resources目录下war文件的顶层。你可以试一试。
答案 1 :(得分:0)
1)最后我的应用程序资源正在运行 - 我所做的改动很少,在我的mvc应用程序配置中,我不知道何时引入此行,这是罪魁祸首。我稍后会进行调查
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
2)Java webapp初始化程序正在寻找应该是“/ *”而不是“/”的映射
3)在页眉和页脚中,我们需要将上下文附加到资源路径。
答案 2 :(得分:0)
您没有指定会忽略静态资源的应用程序安全性的安全规则。尝试在Spring Security配置类中添加这样的代码:
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/resources/**");
}