大型网站tag标签 索引,怎样提高网站访问速度,支付网站开发费分录,html网站正在建设源码Favicon是与您的网站相关的图标#xff08;favicon.ico#xff09;。 并非每个网站都在使用favicon。 但是大多数浏览器并不关心它#xff0c;反正他们都要求它。 当图标图标不在适当位置时#xff0c;服务器将返回不必要的404 Not Found错误。 在典型的Spring MVC应用程序… Favicon是与您的网站相关的图标favicon.ico。 并非每个网站都在使用favicon。 但是大多数浏览器并不关心它反正他们都要求它。 当图标图标不在适当位置时服务器将返回不必要的404 Not Found错误。 在典型的Spring MVC应用程序中我们首先需要配置安全过滤器该过滤器允许所有对favicon.ico的请求因为Spring Security会缓存用户的请求包括favicon.ico请求。 成功通过身份验证后Spring Security会将我们重定向到显示错误的资源。 为了避免这种情况我们通过以下方式配置安全过滤器 security:http auto-configtrue disable-url-rewritingtrue use-expressionstruesecurity:form-login login-page/signin authentication-failure-url/signin?error1 /security:logout logout-url/logout invalidate-sessionfalse/security:intercept-url patternfavicon.ico accesspermitAll /security:intercept-url pattern/ accesspermitAll /security:intercept-url pattern/error accesspermitAll /security:intercept-url pattern/resources/** accesspermitAll /security:intercept-url pattern/signin accesspermitAll /security:intercept-url pattern/signup accesspermitAll /security:intercept-url pattern/** accessisAuthenticated() /
/security:http 该配置可确保当请求favicon.ico时不需要身份验证。 此技巧使我们无法在登录应用程序后看到“ 404 Not Found ”。 通常我们要做的就是使404 Not Found在Spring MVC / Spring Security应用程序中“消失”。 但是实际上客户端仍将寻找该资源服务器将返回404 Not Found错误。 如果我们不想在我们的网站上使用favicon可以采用以下几种方法使服务器在请求后不返回错误。 可能最简单的方法是在静态资源中添加一个“空白” favicon.ico并让服务器根据请求提供此文件。 在以下配置中Spring处理来自/resources/目录的静态资源该目录映射到/resources/**路径 Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {private static final String RESOURCES_HANDLER /resources/;private static final String RESOURCES_LOCATION RESOURCES_HANDLER **;Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(RESOURCES_HANDLER).addResourceLocations(RESOURCES_LOCATION);}} 可以将favicon.ico文件添加到resource/images目录但是随后应创建其他Controller以将任何favicon.ico请求转发到实际图标。 我正在使用配置中的静态类来执行此操作 Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {Controllerstatic class FaviconController {RequestMapping(favicon.ico)String favicon() {return forward:/resources/images/favicon.ico;}}} 怎么运行的 当客户端请求localhost:8080/favicon.ico 控制器会将请求转发到静态资源。 将来当您需要为网站提供favicon.ico时只需替换resources/images目录中的文件即可。 我最近想到的另一种方法是添加一个Controller 它具有一个返回空ResponseBody方法 Controller
class FaviconController {RequestMapping(favicon.ico)ResponseBodyvoid favicon() {}
} 它将解决404 Not Found问题但将来您将需要记住进行配置更改以防您需要为网站添加favicon.ico。 可以在GitHub上的Spring MVC快速入门原型中找到该配置。 参考来自我们的JCG合作伙伴 Rafal Borowiec在基于Spring MVC的应用程序中 在Codeleak.pl博客上配置favicon.ico 。 翻译自: https://www.javacodegeeks.com/2014/02/configure-favicon-ico-in-spring-mvc-based-application.html