Code Life

boris1993的个人博客

让 Hexo 在生成时包含.well-known目录

编辑config.yml,添加如下配置:

1
2
include:
- ".well-known/**"

转换公钥格式

Damus 生成的npub开头的公钥不能直接用,要先转换成十六进制格式的公钥。可以用这个网站来转换。

npub开头的公钥粘贴进damus key一栏,hex key会自动计算出来,复制hex key的内容备用。

创建文件

source目录下新建一个名为.well-known的目录,然后在.well-known目录中创建nostr.json,填写如下信息:

1
2
3
4
5
{
"names": {
"你的用户名": "刚刚转换得到的hex key"
}
}

在本地运行hexo clean && hexo g,生成成功后检查public目录中是否存在.well-known/nostr.json文件,如存在则说明配置正确。

配置 Nostr

提交代码并部署成功后,即可在nostr客户端配置NIP-05认证,本文以Damus为例。

点击左上角头像,进入Profile,点击Edit,在NIP-05 VERIFICATION一栏中填写你的username@你的博客网站,比如我填写的是boris1993@www.boris1993.com,最后点击Save

如果一切正常的话,在你的 Profile 页面就能看到一个对勾图标,代表验证成功。

每次 Vercel 部署之后,它都会在部署的 commit 下面发个类似这样的留言:

Successfully deployed to the following URLs:

blog – ./


blog-boris1993.vercel.app

boris1993.com

www.boris1993.com

而且 GitHub 还会给我发邮件通知这个留言的内容,但是这个消息说实话没啥用,白白麻烦人而已,后来发现,在项目根目录创建一个名为vercel.json的文件,里面写上这样的配置就行:

1
2
3
4
5
{
"github": {
"silent": true
}
}

这个配置的作用就是让 Vercel 不再往这个 repo 的 commit 下面评论部署状态。提交之后,Vercel 就会在这次部署开始遵循vercel.json的设定,不会再发送评论,自然也就不会有那封 “骚扰邮件” 了。

迫于找工作,不得不一边鄙视自己的智商,一边硬着头皮刷 LeetCode。既然开始刷题,那顺便做个笔记,以便日后温习。

因为顺序是乱的,所以请善用CTRL-F

阅读全文 »

我,很不幸,于 2022-12-23 夜,新冠奥密克戎发作。不过,最近记录自己被感染的生活好像是个流量密码,那我干脆也蹭一波热点,记录一下我感染之后的感受。

阅读全文 »

上个月冲动消费,入手了一台 HPE ProLiant MicroServer Gen8。其实我早想搞一台正经的服务器来玩了,因为群晖的魔改 Linux 总是玩的不那么爽。现在心愿实现,开始折腾。

本篇为二手 MicroServer Gen8 折腾记的第一篇,记录拿到服务器之后做的一些初始化的工作。

阅读全文 »

Filter

  • FilterServlet规范制定的,受Servlet容器支持,接口定义在javax.servlet包中。
  • Filter是被 Web Server(如Tomcat)调用。
  • Filter 需要在 web.xml 中定义之后才会起作用。
  • Filter只在请求的前后起作用,Servlet对于Filter来说是一个黑盒。
  • Filter的执行顺序是:
    • void init(FilterConfig) - 容器在初始化Filter时调用,在Filter生命周期内仅会被调用一次。方法可以抛出ServletException
    • doFilter(ServletRequest, ServletResponse, FilterChain) - Web 容器每一次请求都会调用该方法。该方法将容器的请求和响应作为参数传递进来, FilterChain用来调用下一个Filter
    • void destroy() - 当容器销毁 Filter 实例时调用该方法,可以在方法中销毁资源,该方法在 Filter 的生命周期只会被调用一次。

Interceptor

  • InterceptorSpring容器内的,由Spring框架提供支持。接口HandlerInterceptor定义在org.springframework.web.servlet包中。
  • Interceptor是被Spring调用。
  • Interceptor可以深入到方法前后、异常抛出前后等,比起Filter有更大的弹性。
  • Interceptor还允许用户介入请求的生命周期,可以在请求过程中获取信息,通常与请求更加耦合。
  • Interceptor的执行顺序是:
    • 请求到达DispatcherServlet
    • DispatcherServlet将请求发送至InterceptorInterceptor执行preHandle()方法
    • 请求到达Controller
    • 请求结束后,Interceptor执行postHandle()方法
阅读全文 »
0%