我的favicon似乎突然出现了。我不确定我做了什么改变导致它开始失败,但它曾经渲染得很好,现在它是乱码。
以下是它的样子:
我正在使用Spring Boot并且已经用Google搜索了所有关于如何让你的favicon出现的典型答案......但我没有运气。
我注意到的一件事(不确定这是否正常)是,当我访问favicon网址时,它不会将其作为图标加载到浏览器中,而是作为一堆文本加载。 / p>
以下是我访问localhost时发生的情况:8080 / favicon.ico网址:
我唯一可以想到的是,我最近改变了可能对favicon产生影响的是我的WebSecurityConfig.java ......我添加了一个REALM和基本身份验证。
这是WebSecurityConfig.java文件:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter
{
@Autowired
private UserDetailsService userDetailsService;
private static String REALM="MY_TEST_REALM";
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Autowired
public void globalSecurity (AuthenticationManagerBuilder auth) throws Exception
{
auth.userDetailsService(userDetailsService)
.passwordEncoder(passwordEncoder());
}
@Override
protected void configure(HttpSecurity http) throws Exception
{
// authenticate / authorize
// authentication = who the hell are you? i.e. username/password
// authorization = what can you access in the app?
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/*").permitAll()
.antMatchers("/js/**").permitAll()
.antMatchers("/webinars/**").permitAll()
.antMatchers("/img/**").permitAll()
.antMatchers("/fonts/**").permitAll()
.antMatchers("/register").permitAll()
.antMatchers("/samcart").permitAll()
.antMatchers("/sales").permitAll()
.antMatchers("/sales/**").permitAll()
.antMatchers("/paypal/**").permitAll()
.antMatchers("/forgotPassword").permitAll()
.antMatchers("proffesso-favicon.ico").permitAll()
.antMatchers("/students/purchasedCourse.html").permitAll()
.antMatchers("/students/courses/**").permitAll()
.antMatchers("/teachers/courses/*/image").permitAll()
.antMatchers("/teachers/courses/*/offers/*/image").permitAll()
.antMatchers("/handlebars/**").permitAll()
.antMatchers("/css/**").permitAll()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/admin").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.httpBasic()
.realmName(REALM)
.authenticationEntryPoint(getBasicAuthEntryPoint())
.and()
.formLogin()
.loginPage("/login")
.defaultSuccessUrl("/students/courses")
.successHandler(new NoRedirectSavedRequestAwareAuthenticationSuccessHandler())
.permitAll()
.and()
.logout()
.logoutSuccessUrl("/").permitAll()
.and()
.sessionManagement()
.maximumSessions(1);
}
@Bean
public CustomBasicAuthenticationEntryPoint getBasicAuthEntryPoint(){
return new CustomBasicAuthenticationEntryPoint();
}
/* To allow Pre-flight [OPTIONS] request from browser */
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers(HttpMethod.OPTIONS, "/**");
}
@Bean
public HttpSessionEventPublisher httpSessionEventPublisher() {
return new HttpSessionEventPublisher();
}
@Bean()
public SecurityEvaluationContextExtension securityEvaluationContextExtension () {
return new SecurityEvaluationContextExtension();
}
}
答案 0 :(得分:1)
不确定你是否想到这一点。我最近遇到了同样的事情,我的favicon看起来就像截图中的那个。对我来说,它是由maven资源过滤引起的。我添加了* .ico的排除,如下所示:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.ico</exclude>
</excludes>
</resource>
</resources>
答案 1 :(得分:0)
我遇到的确切问题是,在弄清楚原因之前,我几乎要扯掉头发了。 ico文件似乎以某种方式被“编译”。当您通过url/favicon.ico
或在已编译的war或jar文件中直接访问此文件时,就会发生这种情况。
我在pom.xml中包含以下几行,这似乎是导致问题的原因。删除它们后,问题已解决
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>