2025-09-27 08:00:00
标题灵感是来自最近在读的一本书, Things I Don’t Want to Know ( 其实不太好看,起码我不算喜欢)。
先后在几个博客上看到“我不再做的事”这样的题目,原始来源似乎是 Greg Isenberg 的 这则推文 (虽然其实我并不认识他是谁),觉得这个主题很有意思,当时就开始列我的清单。不过试图详细记录时反倒大脑空空,这么些天也只有这几条。可以把它作为一个长期维护的备忘录,定期增补。
完成的:
想做到的:
2025-09-23 08:00:00
城市小工的四季里也有自己的浪漫日常。
薄薄一册,阅读体验相当愉悦。
卡尔维诺的语言像蛛网,看似轻到近乎隐形,却有着精巧无比的结构和远超出本身的承重力。
好意外这才是我读的第二本卡尔维诺,为什么我一直这么拖拖拉拉的?之后打算再听一遍英文版,据说他的书英译本都是经过他本人审校的。甚至非常遗憾怎么我就不懂意大利语呢。
不过,即使是卡尔维诺,也非要给主角配上一个庸俗的妻子和一窝孩子吗。当然你可以说这符合时代,但小工的妻子不能有机会展现自我吗。
随便放几段摘抄。
夏天:
马可瓦尔多回去看月亮了,然后又去看了看再往那边去一些的红绿灯。红绿灯显示着黄色、黄色、黄色,持续地亮起,再亮起。马可瓦尔多就比较了一下月亮和红绿灯。月亮虽说也是黄色的,可神秘而苍白,底子里却偏绿,而且还泛着蓝,而红绿灯呢,它那点黄色,颇为庸俗。月亮十分沉静,虽然偶尔会被文以薄薄的残云,但却形容庄严,毫不在意,不紧不慢地放着自己的光辉;红绿灯总在那里亮了又暗,亮了又暗,急促不安,虚假而疲劳地活跃着,被奴役了一般。
冬天:
一到傍晚六点,城市就陷入了消费者的手中。整整这么一天下来,从事生产的人一直忙的都是生产:生产消费品。每天一到点,就好像开关切换一般,他们突然都停止生产了,然后呢,走!所有的人都扑去消费了。
秋天:
猫的城市和人类的城市是一个包含着另一个的,但它们并不是同一个城市。只有极少的猫还记得那段两个城市之间没有差别的岁月:那时候,人类的街道和广场也是猫的街道和广场,草地、庭院、阳台、泉池也都是共享的:那时候,大家都生活在一种宽阔而多样的空间中。但是最近几代以来,这些家养的猫科动物已经被这个不可居住的城市所囚禁:马路上的交通是致命的,奔驰的汽车川流不息,随时都会把猫轧扁;以前每一平方米的土地上,都会有个小花园、一片空地,或是建筑的废墟遗址,然而现在城里却处处高耸着房子、居民楼和崭新的摩天大楼;每一个通道都停满了车;庭院一个个地,要么是被钢筋水泥板覆盖住了,要么是变成了车库或者电影院,或是货品的仓库和车间。之前,那些矮矮的屋顶、拱顶花边、观景楼、蓄水槽、阳台、天窗、金属棚就像高原一样,高低起伏,连绵不绝,可如今,在每一个可以加高的房子上都建上了加高层:在路面最底处和如天一般高的顶楼之间的错落消失了;新一代的猫们徒劳地寻找着祖先的行踪,寻找着可以从栏杆上柔软地跳到上楣和檐沟上的落爪处,寻找着可以让它们敏捷攀爬到房顶上的支撑点。 但是,在这个任何空隙都会很快被填满、任何水泥块都会很快和其他水泥块合并在一起的垂直的、被压缩的城市里,同时也出现了一个和这个城市相对的另一个城市,一个反面的城市,一座由墙与墙之间的条条间隙、两座楼左右前后被建筑条款规定留有的最小间距构成的城市;一座由间隙、天窗、通风管、车道、室内小广场、地下室入口构成的城市,就好像在灰泥和沥青做的星球上,铺着一张干涸的运河组成的网,猫这个古老的物种,正是在墙与墙之间夹着的这张网中奔窜着。
这类书的内容其实不难想像吧,但看到案例数据和只是模糊“知道”是不一样的,显然我也没必要再把结论在这里鹦鹉学舌一遍。人的大脑就是这么懒惰,需要接收到细节才能被说服。
感兴趣也可以看我这个没整理过的摘抄。
读上边那本时在关联推荐里看到了这本,内容大同小异,甚至用的许多数据都一样。不过这本明明比《手机大脑》早出版一点(就一点点),却是后者成为了比较现象级的畅销书。就控制手机使用时长的实操性建议来说这本很多挺值得参考。
笔记回头另开一篇。
确实很像中小学生高分范文。但内页太漂亮了,尤其人物设计和颜色运用,说是时装杂志插画也有人信的吧。
本以为是关于极地科考的科普绘本,没想到是个纯虚构故事。画面还算漂亮,随便看看吧。
简介就把内容概括得挺好:
《木骨禅心》对日本古建筑向中国古建筑学习的三堂课,以及日本从全面模仿中国,到逐渐根据本民族的特点进行独立创造的历史进程,做了惊鸿一瞥式的概览。试图通过对飞鸟时代、奈良时代、平安时代、镰仓时代典型建筑实例的剖析,与同时期、同类型的中国古建筑相对照,呈现日本各历史时期的古建筑受到中国古建筑何种程度的影响,且如何通过学习、理解和消化从中国南北朝、唐、宋输入的建筑知识与技艺,进而创造出具有自身独特性的日本建筑。
对于我来说是一本完全知识性的指引,大概了解了日本建筑史和一些重要建筑(还可以说简略学习了日本历史),没有任何情感波动(Yes I don’t care about Japan)。也可以作为日本古建观光手册使用,相当清晰明了,甚至因为多了和中国建筑乃至朝鲜建筑的对比而更有参考价值。
阿瑟米勒《萨勒姆的女巫》L.A Theater 戏剧现场版。
很神奇,我觉得自己记忆力很好,中文版也才读过几年而已,听这个现场版时却意识到我根本回想不起具体情节,只有那种下意识的情绪上的战栗。甚至现在是中英都读过一遍了,我却依然无法复述出非常准确的句子,只有情绪,只有感受(这当然不是贬义)。甚至我在走路过程中听时因为被剧情和演员表现所震慑,不得不停下来,站在原地听完那一节才能继续。
这个版本的选角也很不错,各个角色的口音和讲话方式大相径庭,只靠声音就可以直观地感受到人物性格。
绘本。
介绍家庭小菜园里的生物们。恐虫勿看,尤其最后一页,几十种虫类一字排开,怀疑我害怕虫子的朋友会尖叫着把书整个扔掉。
I want that moon!
一只小鼹鼠试图摘下月亮。很幼稚,很可爱。是过于拟人化不错,但谁会不想要月亮?
2025-09-13 08:00:00
说好的不折腾博客呢!(心虚的我)
之前 写过 我把博客图床从 GitHub 换到了 Backblaze,但历史遗留问题还在这儿:
WebP
,所占空间不小目前用作图床的这个 GitHub 仓库有 540 MB,而 GitHub 官方对单个仓库的建议大小是不超过 1 GB。尤其是换到 Backblaze 并且全部采用了 WebP
格式之后,真是横看竖看旧仓库不顺眼,所以,忍不住来整顿了。
git clone
GitHub 图床仓库到本地content/posts
文件夹,所以不成问题)Python 脚本:
![]()
)中含有 GitHub 图床地址的所有文件名import re
import shutil
from pathlib import Path
from PIL import Image
import urllib.parse
# ---- Config ----
MARKDOWN_DIR = Path(r"md_files_folder") # folder containing .md files
IMAGE_DIR = Path(r"images_folder") # folder containing images
REMOVED_DIR = IMAGE_DIR / "removed" # where to move unused images
# Regex: capture filenames after "master/"
DOMAIN_PATTERN = r"master/([^/\s]+\.(?:png|jpe?g|webp))"
# ---- Step 1: Extract image filenames from .md ----
image_refs = set()
for md_file in MARKDOWN_DIR.glob("*.md"):
with md_file.open(encoding="utf-8") as f:
text = f.read()
matches = re.findall(DOMAIN_PATTERN, text, flags=re.IGNORECASE)
# URL-decode the matches so %20 etc. map to real filenames
decoded = [urllib.parse.unquote(m) for m in matches]
image_refs.update(decoded)
print(f"Found {len(image_refs)} referenced images.")
# ---- Step 2: Identify unused and missing images ----
used_files = set(image_refs) # decoded names from Markdown
local_files = {f.name for f in IMAGE_DIR.glob("*")} # actual local filenames
unused = local_files - used_files
missing = used_files - local_files # referenced but not found locally
print(f"Unused files ({len(unused)}): {sorted(unused)}")
print(f"Missing files ({len(missing)}): {sorted(missing)}")
# ---- Step 3: Move unused images ----
REMOVED_DIR.mkdir(exist_ok=True)
for img in IMAGE_DIR.glob("*.*"):
if img.name not in used_files:
shutil.move(str(img), REMOVED_DIR / img.name)
print(f"Moved unused: {img.name}")
# ---- Step 4: Convert remaining to WebP ----
for img in IMAGE_DIR.glob("*.*"):
if img.suffix.lower() != ".webp":
try:
with Image.open(img) as im:
webp_path = img.with_suffix(".webp")
im.save(webp_path, "WEBP")
img.unlink() # delete old file
print(f"Converted: {img.name} -> {webp_path.name}")
except Exception as e:
print(f"Failed to convert {img.name}: {e}")
中途踩到了一些坑但感觉这会非常因人而异,教训之一是在各步骤输出结果并及时比对数据,还有慎用删除,提前备份。
平时插单张图片我用 Obsidian + PicList ,这里一下子有三四百张需要批量上传,用 Backblaze B2 Command-Line Tool (B2 CLI) 会方便些。
Install the B2 CLI:
pip install b2
Authorize Your Account:
b2 authorize-account
Upload the Folder:
b2 sync images_folder/ b2://my-photo-backups/
用 vs code 的 regex replace 把旧地址全部换成 Backblaze。也就是把原来的 https://raw.githubusercontent.com/{username}/{repo}/{branch}/{filename}.jpg|jpeg|png|webp
换成 Backblaze 经 Cloudflare 中转后的地址,{cloudflare_worker_address}/{filename}.webp
。 Cloudflare worker 部分在上次的
更换图床博文
里也写过了。
到上一步其实就可以结束,把 GitHub 图床仓库删除就行了。但我在旧地址 github.io
下保留了部分工具性博文,那边还是用的 GitHub 图片链接,而要是一并也更换成 Backblaze,墙内访问会看不到图片。用上面类似流程筛选了一遍,把 github.io
用到的图片以 WebP
存到原图床 repo 的另一个 branch,删除原始 branch。批量更换 github.io
下图片地址。
另外看了下现在 GitHub 上各仓库的大小,这个博客的源码仓库,9.6 MB(因为有两个 branch 分别托管到 github.io
和 vercel.app
)。我的 obsidian 文档同步仓库,2.4 MB。果然纯文本最高!上千个文件才这么点地儿。
2025-09-09 08:00:00
极其短小的一期。
小岛上暴风雨来临的一天。
果然是 Sydney Smith 啊!云、海、雨,纹理和色彩表现一如既往。画面和文字的节奏张力完美结合,隔着屏幕都好像也感觉到暴风雨来临前后那急促、紧迫的压力。
狗屁不通,硬着头皮读了1/3的我简直是个智障。再看日式鸡汤我就是猪!这种写作水平连发公众号或者博客我都嫌注水过多。
麦克法伦这本实在是硬凹概念过头了。前两章厄尔多瓜的云雾森林和印度受伤甚至消失的河流也还可以说不错,但第三章加拿大从开头就直接崩塌,用神棍的预知做钩子,结果是所有论证都撑不住,连续上百页没有事件没有人物,只有几个人在河上漂着,哪怕语言再精妙再准确还是空洞。
我是很想展开聊的但估计没有个几千字说不清,上个月倒是反复和 ChatGPT 吐槽了上百句不止。不过 Washington Post 的这则评论也是够狠的了: Unfortunately, Macfarlane is also prone to overwriting and the kind of breathless observations that strike people on drugs as profound. “Everything is connected to everything else,” he gushes at one point. “Hurt people often hurt people,” he remarks later, in the manner of an elementary schoolteacher. There is a lot of awed and emotional crying. 有付费墙,放个可以直接观看的链接吧:Rivers deserve to be protected. But are they ‘alive’?。
忘了搜什么结果 Libby 只蹦出来这个于是顺手一读。主题概况起来应该是“move on”和“与我常在”。文风对我来说太治愈美文了。画风也不是我偏爱的,就只有上面这个场景还行。但看 goodreads 上 4.3 的评分就知道很多人吃这套。
小王子作者圣埃克絮佩里的传记绘本。文字不算出众,但画面美得惊人。尤其各种抽象符号图案的精美程度,都让我忍不住嘀咕这画儿童绘本也有点浪费吧(……)。立刻去看画家名字,好的,Peter Sís。
身居纽约,神游世界。
必须得说其中颇有一些刻板印象,但视觉效果惊人,Peter Sís 这极其精美繁复的画风真是让人移不开眼。
是这样子的,前几个月有本我没看下去愤而打两星的书,中途已经忍不住疯狂和 ChatGPT diss 作者了,结果 ChatGPT 说啊哈他就像一个缺少事实依据且过度迎合大众贩卖故事的 Michael Pollan,我笑得不行说这是不是辱 Michael Pollan 了。然后想起来之前读了一点他的《杂食者的两难》觉得还不错,正好现在有 Libby 账号可以借英文版听听,但没想到 The Omnivore’s Dilemma 这么抢手暂时没有可借副本,就随便挑了他的这本。结果是……不太行。论证是相当站不住脚。豆瓣这则评论例子举了很多,我就不多费唇舌了。(但是我应该还是会去听 The Omnivore’s Dilemma 的,……吧?)
故事和绘画只能说说得过去,但 Stephen Fry 这么一读立刻把有趣程度拔高了好几档。
Peter Sís again.
伽利略传记绘本。审判这两张相当惊艳。就是 Peter Sís 太爱用花体字了,我看不清!
想看这个作者另外一本关于动物界建筑师的书,Libby 上没有,同作者名下有这本就借来读了,定位应该是童书,简单的动物摄影集,有各种稀奇古怪动物,超高清大图,我觉得不是所有人都接受得了。挑了张最无害的图,猜猜这是谁的爪子?
2025-09-07 18:15:37
以月度为单位写总结的问题是一本卡住整月搁浅。第 N 次思考是不是应该转换一下模式。
东欧观鸟人笔记。3.5 星。
湖畔末日冰冷得令人打冷战。其他篇目在观鸟文章中算不得突出,倒是全世界观鸟人的心情都是如此相通,以及大家未免都摄入了太多英美鸟书鸟片。鹰雄一章讲 J.A.Baker(游隼 The Peregrine 的作者) 过于表面远不及 Robert Macfarlane 在《荒野之境》中的讲述。
此外这个译本,它是从波兰语直译过来的,很流畅不错,但是,有点过于流畅甚至“假滑”,可我又不懂波兰语只能说这是我微妙的直觉。整本书聊的内容,其实都是很落地很实际的,参加野鸟观测,给迁徙鸟类戴上环志,对城市里的鸟类保护和绿地丧失的关注和愤怒,都并不是那种过于诗意、抒情的写作。
而且前言就写了:
说来也怪,在学校写作文时,我会非常谨慎地斟酌用词。因为我很快就意识到,语文老师教的未必正确——有时重复某个含义准确的词比勉强去找一个花哨的近义词要强得多。这就是为什么我不会用“有翅膀的探险家”这样故弄玄虚的说法来代替“鸟”这个词。
那中译本是怎么处理的呢?就抽两个章节名来看看好了:
有必要吗?尤其“鹰雄”,我不认为这里有任何的需要处理成谐音梗。何况 Baker 这本书的精神和人类的“英雄”没有一丝一毫的联系。强调男性性别更是完全多此一举。再则,Baker 迷恋的是游隼,falcon 隼,气质和“鹰”也是不同的,这种微妙的氛围和风格传达真的不需要玩弄花招,反倒弄巧成拙。
一些摘抄和关联书单:Notes|抓住十二只喜鹊的尾巴。
之前读过同系列的《我们迷人的鸟》(见 2023九月记录 ),这两本依然延续了诙谐幽默的风格,分别讲的是鸣禽和花园常见鸟类。部分鸟类名称翻译有问题,懒得一一复制把笔记截个图(未包含全部错误),阅读中文版时记得不要全盘参照它的译名。
中国哲学家赵汀阳和法国人类学家阿兰·乐比雄的(不太成功)跨文化交流。赵一心宣讲,阿节节败退。看得我是乐不可支。
两方都不能够说服我,但当然是乐比雄更没论据一点,他甚至只能循环论证用天主教里的“圣人”、“神迹”来捍卫观点,这还有什么说服力?赵汀阳当然就毫不留情步步紧逼,诸多对一神论和西方“现代观”的灵魂质问过瘾至极,让一神教黑子我本人哈哈大笑。只是赵汀阳所推崇的所谓东方思想“天下体系”,又实在是太过儒家了,我也没办法全盘赞同。
不过呢,这种交流本来就难以(或者说,不可能)得出一个盖棺论定的结果。事实上,能有这么一位对宗教信仰甚笃的朋友接受你的质疑,愿意开诚布公探讨,并且双方都有较为资深的人文水准,这个过程就已经弥足珍贵。
看的过程疯狂摘抄,回头单独发吧,塞在这里有点太满了。
故事太幼稚,画面也不写实,哪有五种长相不同的企鹅生活在一起的道理。可能唯一的作用是让小孩学会数数。
之前说过,我很喜欢读库 “建筑史诗”系列,但读库自营图书定价偏高且折扣吝啬,在多抓鱼买二手通常是定价 5 折左右,还可以接受,可惜大家都抱着同样心思导致相当难抢,最后我灵机一动,想到建筑史诗的前几本在读库 mook 上连载过,于是买了这么古早(2013 年)的一期回来。(补充,现在多抓鱼上建筑史诗的折扣甚至只有 7-8 折,但也几乎全系列断货,太夸张了吧!)
所以,重点就是《汉家陵阙》。
汉代木构建筑地上部分实则早已灰飞烟灭,只能从陵墓、封土、砖画中遥想汉风。一些我非常意外的知识点,唐时人们就已经只能感叹“西风残照,汉家陵阙”。另外今天我们都还在使用的许多表述,实则脱胎于汉时的日常。比如“买东西”,最早是出自汉代的东西市城市规划,故用来指代采购行为。还有用“五陵少年”指代世家子弟,是因为汉时陵墓群外常伴有卫星城,居住者多为高门望族,为帝王守墓(或者说,护卫?毕竟不是后世那种犯错被贬守皇陵)。
而这里面最最精彩的部分是试图还原霍去病之墓,尤其封土、石刻之设计初衷。不夸张地说当时我甚至看得屏住呼吸,鸡皮疙瘩起一身。
而这也正是毫无建筑背景知识的我为什么会如此着迷这个系列的原因(主要是中国部分):我并不关心技术细节,我感兴趣的是建筑中体现的古人审美观和世界观。尤其是,其中的很大一部分在不知不觉中也塑造了现在的我。
更细的点会写到后续建筑史诗的专题文里(实在是这里再展开就没完没了了!)。
哦另外提一嘴,这是杂志,所以收录了好几篇文,本着买都买了那就随便一看吧。好嘛,第一篇《下乡养儿》就把我气得半死,零分都不值,只能倒扣。
《下乡养儿(上)》讲的是一对夫妇为了帮八岁的女儿天天克服上学恐惧,在朋友的帮助下举家搬到农村,希望更广阔的天地能让天天渐渐勇敢,回到学校。一个来月的乡下生活确实让天天有了不小的变化。
我一直尽力避免对作者以及非虚构作品的人物进行直接人身攻击,但这篇实在是让人脱口而出:“你们一家是不是都有病?!” 这小孩儿没法上学,在家待着整夜开灯不睡,必须大人陪玩,原因是“我怕”,到底是在怕什么?家长也不想着外力介入,就只会全家一起熬夜,甚至辞职在家陪着通宵,之后又搬家到城郊。实在是不懂这家人脑子里到底在想什么?写得又极其差劲,说流水账都是抬举这文笔。
但气性过去了我又想,我应该真的没法有小孩,控制狂+龟毛,不是小孩被逼疯就是我自己被逼疯。
不是山的自然史而是文化史。对于山峰,从畏惧、躲避,如何变成了攀登、“征服”。不过数百年时间,就对群体完成了这样的观念改造。而这种登顶的执念,和极地探险的风靡一时如出一辙。
珠峰一章说实话让我觉得太过傲慢,甚至恶心。不是说作者写得不好,他显然也明了那样的热潮中充满了西方社会的一厢情愿和自以为是。只是在这种叙述和追溯中我隐隐想明白为什么始终我对所谓的狂热“登山爱好者”以及“攀岩爱好者”有不知从何而来的抵触。这其中有多少昔日帝国主义和殖民主义的遗存,谁能说得清呢。
而出道作品就写得这么完整成熟,厉害厉害。这本是我读过的几本麦克法伦中文译本中质量最好的,译者有些词的选择都让我惊叹,原来中文里还有这么凝练又精准的表达!有古意,又不会落入滥用成语的窠臼,多是精巧的单字或短语(很多在现代汉语里已经罕见),反倒把原文那种炼字且极具学者气质的语言风格还原了出来。但这位译者(在这个笔名之下)居然只有两本译著,好意外。
2025-09-07 08:00:00
哈真是绝啦!新评论区才上线大半天我就开始修 bug。并且追根究底后发现只有我这样同时使用 Vercel 托管静态博客 + 用 Waline 做评论系统的倒霉蛋才会碰到!
.RelPermalink
默认带有 /
结尾,例如 /post1/
。https://example.com/post1
(没有 /
),页面仍然可以访问,并且浏览器地址栏不会自动补全 /
或重定向。window.location.pathname
读取的是当前页面 raw strings 作为评论 thread 唯一标识符。所以:
/post1
和 /post1/
会被当作两个不同的 thread。在 Vercel 配置中,强制用户访问带 /
的标准 URL。
在 Hugo 根目录下新增 vercel.json
文件:
{
"redirects": [
{
"source": "/:path*",
"destination": "/:path*/",
"permanent": true
}
]
}
/post1
时,会自动重定向到 /post1/
。在 Waline 前端配置中手动指定 path
,用 Hugo 的 .RelPermalink
代替 window.location.pathname
。
<script>
Waline.Init ({
el: '#waline',
serverURL: 'https://your-vercel-app.vercel.app',
path: ' {{ .RelPermalink }} '
});
</script>
.RelPermalink
一定带 /
,例如 /post1/
。/post1
,评论系统也会固定使用 /post1/
作为唯一 thread。相关链接:
一开始我只是意识到同一篇博文下的评论没有同时显示,仔细看了半天链接才发现只是一个 /
的问题。去看 Waline 的 issue 也有人提,作者说这两个路径根本上就不同,所以要改应该是自己改站点设置或者 Waline path 指向,而非要求 Waline 官方将这作为 issue 解决。他说的也确实有道理。
那我的疑问就是,为什么?浏览器和服务器端为什么能把这两个链接当同一个页面处理?而且我之前从来没意识到少打多打一个 /
的问题。再加上用静态站和 Waline/Twikoo 的人这么多(其中还不乏大把小白),之前好像也没怎么见到别人说评论的问题。
正巧我手上还分别有 GitHub Pages,Netlify 部署的静态站,加上这个 Vercel 的站点,试来试去发现原来只有 Vercel 不会自动重定向!有 /
没 /
确实都能正常访问。而用 GitHub Pages 或者 Netlify 托管的站点,会自动补全 /
并重定向到标准 URL,所以根本没有缺少分隔符而导致评论被分流又或者统计工具里把 /post1
和 /post1/
当不同页面来统计的问题。
我就说之前为什么在 Umami 里老是看到同一个页面的不同统计!所以要是治本的话,应该强制重定向和改写 Waline path 一起进行,因为影响的是不同方面。而据此我还发现我这个主题在生成单个页面上的 tag 和 category 链接时也是没带 /
的。于是又吭哧吭哧改代码。
接着就是原来评论的问题。我想把它们重新导入同一个页面,可数据库 LeanCloud 改起来超级麻烦。Waline 本身提供了一个导入导出服务,不过它不能像 Disqus 那样指定路径导入,会清空原有数据完全重写,所以不能选择性导入导出。更过分的是我只是改了下 URL,再导入就连 parent thread 也失效了!这时我又觉得 Disqus 也还挺好。但也不能强求个人项目做得和商业公司一样尽善尽美是不是?而且我看看官方文档,觉得真的写得也挺详尽了,感觉如果是我可能项目和文档做到一半就暴走了……
再然后没忍住又研究了下各大商业网站的跳转逻辑,发现它们几乎都会做重定向。但有些站点,比如网址是 /page.html
,再加个结尾 /
就会 404。互联网我都用了 20 年了,过去怎么从来没注意一个微妙的 /
都会有这么多问题,难道我一直是瞎了吗……