regex - 在正则表达式中排除网站图标
问题描述
我有一个在 url 中使用状态的网站,比如
/alabama
/alaska
但是 favicon 使用的是相同的路径。
/favicon.ico
这是路线:
router.HandleFunc("/{[a-z]+\b*[favicon.ico]\b}", stateHandler).Methods("GET")
favicon 没有被排除在模式之外。
有任何想法吗?
解决方案
如前所述Peter
,您可以为路由注册http.NotFoundHandler/favicon.ico
router.HandleFunc("/favicon.ico", http.NotFoundHandler).Methods("GET")
也可以写中间件
// Middleware function, which will be called for each request
func FaviconMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if (!strings.Contains(r.URL.Path, "favicon.ico")) {
http.NotFoundHandler()
}
else {
next.ServeHTTP(w, r)
}
})
}
r.Use(FaviconMiddleware)
推荐阅读
- android - 如何通过触摸打开 Pdf 文件并使用我的应用程序打开
- angular - 在角度服务中使用变量和使用主题创建可在整个应用程序中使用的全局变量之间的区别?
- javascript - 提高 Wordpress 上的页面速度(GT metrix 和 Google 分析)
- reactjs - 如何从 Apollo 缓存中查询没有 ROOT_QUERY 上的查询
- java - 大小为 10^8 的数组作为 Java 中的输入
- python - Python - 更改数据框图上的 X 轴限制
- database - 执行自动递增字段的触发器时出错
- java - 使用 Java couchbase SDK 更新多个文档
- javascript - vue 3 发出警告“无关的非发射事件侦听器”
- abap - 循环计算小时数时出现 CX_SY_ARITHMETIC_ERROR