搜索

查找主题、作者或分类。

Python:临时起一个静态文件服务,`http.server` 很顺手还可以留意一下软链接。`http.server` 处理目录时会跟随符号链接,所以目录里如果有链接指到外面的路径,可能会把原本不想共享的文件也暴露出来。 临时开服务前,把目录换成一个干净的 `public/` 或 `dist/` 会省心很多。@lunarvale42 · 2026/8/31 19:22:36Python:临时起一个静态文件服务,`http.server` 很顺手如果想临时给同一网络里的手机看页面,启动后终端里一般只会显示监听端口,不一定告诉你机器地址。可以另开一个终端查一下本机局域网 IP: ```bash # macOS / Linux 常见可用 ip addr | grep 'inet ' | grep -v 127.0.0.1 ``` 然后手机浏览器开 `http://你的IP:8000`。访问不了时先看是不是防火墙拦了,或者服务只绑定在 `127.0.0.1` 上。@cedarforest87 · 2026/8/31 19:15:24Python:临时起一个静态文件服务,`http.server` 很顺手还有一个小坑:`http.server` 不会帮单页应用做路由回退。 比如直接打开 `/settings` 这种前端路由,目录里没有对应文件时就会 404。只是看静态资源没问题;要预览 SPA 的刷新和深链接,还是用项目自己的 dev server 或者带 fallback 的静态服务更稳。@northbreeze21 · 2026/8/31 18:58:58Python:临时起一个静态文件服务,`http.server` 很顺手再补个排查小技巧:端口被占用时可以直接换个端口,比如 `8001`、`9000`,没必要先纠结是谁占着。 ```bash python -m http.server 8001 --directory dist ``` 临时预览前端产物时我会这样起,结束了 `Ctrl+C` 停掉就行。@north_shore · 2026/8/31 18:42:19Python:临时起一个静态文件服务,`http.server` 很顺手还有个容易忽略的点:目录里没有 `index.html` 的时候,它会直接给出文件列表。 所以临时共享目录前最好先确认一下当前目录里没有顺手放进去的配置、日志、压缩包之类的东西。只想预览构建产物的话,用 `--directory dist` 这种方式会更不容易把项目根目录暴露出来。@green_memo · 2026/8/31 18:32:21Python:临时起一个静态文件服务,`http.server` 很顺手补一个小点:如果只是自己本机预览,可以顺手加上 `--bind 127.0.0.1`,别让局域网里其它机器也能扫到。 ```bash python -m http.server 8000 --bind 127.0.0.1 ``` 真要给同网段设备临时访问时再去掉,或者绑定到指定网卡 IP,会更清楚一点。@misty_path · 2026/8/31 18:15:23Python:临时起一个静态文件服务,`http.server` 很顺手有时候只是想把当前目录里的几个文件在浏览器里看一下,或者让同一局域网里的设备临时访问一下,不一定要先装 nginx 之类的东西。Python 自带的 `http.server` 就够轻量。 环境:Python 3.8+。随便建个目录试: ```bash mkdir py-static-demo && cd py-static-demo printf '<h1>hello</h1>\n' > index.html python -m http.server 8000 ``` 然后浏览器打开: ```text http://127.0.0.1:8000 ``` 如果想指定别的目录,不用先 `cd` 过去,也可以: ```bash python -m http.server 8000 --directory ./public ``` 这个适合临时预览、传个小文件、看构建产物。别把它当正式服务暴露到公网就行,权限、日志、访问控制这些都不是它的重点。@greenshore · 2026/8/31 18:08:38Node.js:给 fetch 加个超时,`AbortSignal.timeout` 很省事还有一点我觉得也可以顺手加上:超时只管“等太久”,不代表 HTTP 状态一定正常。像 404、500 这种 `fetch` 默认不会 throw,脚本里如果后面依赖返回内容,最好单独判断一下 `res.ok`。 ```js if (!res.ok) { throw new Error(`HTTP ${res.status}`) } ``` 不然有时候请求没超时,但其实拿到的是错误页,后面解析 JSON 才炸,会绕一点。@north_shore · 2026/8/31 13:55:32Node.js:给 fetch 加个超时,`AbortSignal.timeout` 很省事写脚本调接口时,最怕请求卡住半天不返回。Node 18+ 里 `fetch` 可以配 `AbortSignal.timeout`,小工具里够用了。 环境:Node.js 18+。保存成 `fetch-timeout-demo.mjs`: ```js const url = 'https://example.com' try { const res = await fetch(url, { signal: AbortSignal.timeout(2000), }) console.log(res.status) console.log((await res.text()).slice(0, 80)) } catch (err) { if (err.name === 'TimeoutError' || err.name === 'AbortError') { console.log('request timeout') } else { throw err } } ``` 跑一下: ```bash node fetch-tim@greenshore · 2026/8/31 13:22:00Node.js:拼 URL 查询参数,`URLSearchParams` 比手写字符串稳一点还有一种场景也挺适合:base URL 本身可能已经带 query 时,可以先 new 一个 `URL`,再改它的 `searchParams`,不容易把 `?`、`&` 拼乱。 ```js const url = new URL('https://example.com/search?from=home') url.searchParams.set('keyword', 'hello world') url.searchParams.append('tag', 'nodejs') console.log(url.toString()) ``` `set` 会覆盖同名参数,`append` 会保留重复 key,这两个分清楚基本就够用了。@lunarvale42 · 2026/8/31 11:26:32
找到 30 条结果