在Spring MVC应用程序中找不到静态资源

Svidic:

我正在使用MVC Web应用程序。在Spring Security中使用Spring Boot 2.0.1。当我尝试到达静态资源时出现错误404。

在此处输入图片说明

我尝试过不同的事情,阅读了许多主题,但是找不到任何解决方案。

配置类:

@SpringBootApplication
@EnableWebMvc
public class FriendlyFireChessApplication extends SpringBootServletInitializer implements WebMvcConfigurer {

    @Autowired
    private SpringApplicationContext springApplicationContext;

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(FriendlyFireChessApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(FriendlyFireChessApplication.class, args);
    }

    /*
    some beans here
    */

    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }
}

项目结构:

在此处输入图片说明

index.html:

<DOCTYPE html>
    <html lang="en">

    <head>
        <title>Friendly fire chess</title>

        <link rel="stylesheet" type="text/css" href='/static/css/style.css'/>
    </head>

    <body>
        <header>
            <div class="main_header">
                <div>
                    <a id="icon"><img src='/static/img/logo_1.png' width="40" height="70" border="0" /></a>
                </div>

                <div id="main_title">
                    <span>Friendly Fire Chess</span>
                </div>

                <div class="authentication_bar">
                    <div>
                        <span><a id="log_in_button" href='http://www.ffchess.org/login'>Login</a></span>
                    </div>

                    <div>
                        <span><a id="sign_in_button" href="http://www.ffchess.org/signin">Sign In</a></span>
                    </div>
                </div>

            </div>

        </header>

    </html>

安全设定:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.csrf().disable().authorizeRequests()
            .antMatchers(HttpMethod.POST, SecurityConstants.SIGN_UP_URL)
            .permitAll()
            .antMatchers(HttpMethod.GET, SecurityConstants.VERIFICATION_EMAIL_URL)
            .permitAll()
            .antMatchers(HttpMethod.POST, SecurityConstants.PASSWORD_RESET_REQUEST_URL)
            .permitAll()
            .antMatchers(HttpMethod.POST, SecurityConstants.PASSWORD_RESET_URL)
            .permitAll()
            .antMatchers(SecurityConstants.H2_CONSOLE)
            .permitAll()
            .antMatchers(SecurityConstants.HOME_PAGE)
            .permitAll()
            .antMatchers("/resources/**", "/static/css/**", "/static/img/**")
            .permitAll()
            .anyRequest().authenticated().and()
            .addFilter(getAuthenticationFilter())
            .addFilter(new AuthorizationFilter(authenticationManager()))
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);

}

这一切怎么了?

清醒:

根据项目结构,所有资源都将复制到static类路径下的目录中,并且不会存在任何类似的位置resources因此,它将无法解决。

资源位置应与类路径一起指定

registry.addResourceHandler("/static/**")
   .addResourceLocations("classpath:/static/");

为了安全起见,您可以像这样对多个位置查找进行分类

.addResourceLocations(new String[]{"classpath:/static/", "/"});

除非覆盖,Spring默认包含这些

["classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/", "/"]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Spring Boot应用程序中找不到我的h2数据库

在Spring Boot应用程序中找不到DTO

在我的Web应用程序中从Spring收到“找不到线程绑定的请求”错误

Spring MVC:资源找不到* .ico文件

如何在Spring应用程序中映射静态资产?

Intellij找不到我的Spring Boot应用程序

Spring在资源中找不到文件

Java Spring Access外部应用程序的静态资源

Spring Boot 2.0.0和同一应用程序具有不同域的静态资源

在Java Spring应用程序中找不到软件包

在Spring Boot和Spring Security应用程序中提供静态Web资源

没有@WithMockUser的Spring Boot应用程序无法摆脱“在SecurityContext中找不到身份验证对象”

构建Spring MVC应用程序,控制器“找不到符号”模型

Spring MVC应用程序和静态内容更新

在Spring Boot应用程序中找不到用于构建器的名为xxx的缓存

在Spring Boot应用程序中通过Jersey资源方法提供静态内容

具有基于Java的配置的Spring MVC-找不到404的静态资源

打包一个包含JSP和静态资源的Spring Boot应用程序

Spring应用程序找不到映射视图

在Spring MVC应用程序中打开静态文件

使用STS创建新的Web应用程序项目时找不到Spring MVC项目?

Spring MVC应用程序中的性能

无法在Spring MVC应用程序中加载静态资源

在Spring应用程序中遇到错误:cvc-elt.1:找不到元素'beans'的声明

找不到静态文件Spring MVC + Thymeleaf

在 Spring Kafka 应用程序的应用程序负载测试期间找不到主题错误

在 Spring Web 应用程序中找不到类 [org.springframework.scheduling.quartz.SchedulerFactoryBean]

在 mvc 应用程序中找不到资源 api

找不到主类 Spring-Boot 应用程序