Closed nicemist closed 8 months ago
在我访问 https://www.nicemist.xyz/article/zwww 时,网站的图片似乎已经正常显示了:
https://cdn.staticaly.com/gh/nicemist/blogpicgo@master/img/202305281944728.jpeg
我换了github的图床,你可以用图片的地址:https://s1.vika.cn/space/2023/05/08/1e1f9a11de774cc7a76d14a5c69fe49c ,放到notion网站里面,就可以复现了
图床的防盗链功能检查一下,我在本地创建的页面中引入该图片显示403无权访问。
这张图片似乎只能在 https://s1.vika.cn 的域名下才能被加载
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<img src="https://s1.vika.cn/space/2023/05/08/1e1f9a11de774cc7a76d14a5c69fe49c"/>
</script>
</body>
</html>
我这边同样遇到了自定义图床的问题,Nobelium版本的会在前面加上notion域名进行解析?所以可以正常显示,比如第一张图。
这是使用作者NotionNext的,他会直接解析获得原图床的链接。可能是notion有一些骚操作hh,或许可以采取Nobelium的做法,这样可以避免自定义图床的问题
我刚刚又尝试了notion图床的图片,解析出来和Nobelium版本的相同。notion官网的图床才用的是aws的,是对于图床解析的代码有做修改吗。
并且使用了NotionNext的Nobelium主题进行尝试,发现与主题并无关联(虽然肯定和样式无关了)
又进行了一次尝试,单独建了一个本地html,可以正常显示。神奇,再考虑考虑是什么问题。
<img style="object-fit:cover" src="https://img2023.cnblogs.com/blog/1663849/202307/1663849-20230711111727487-720082085.png" alt="notion image" loading="lazy" decoding="async" class="medium-zoom-image">
啊哈,我后面又看了看请求头,以及mapImage.js,发现有个图片映射对图床做了区分。或许是这个问题。
github: https://github.com/chz8bit/NotionNext
//
// 可以访问的请求头 status 200
// 对应的网址 https://www.chz8bit.top/2023-07-11
:authority: www.notion.so
:method: GET
:path: /image/https%3A%2F%2Fimg2023.cnblogs.com%2Fblog%2F1663849%2F202307%2F1663849-20230711111727487-720082085.png?table=block&id=05d66abe-edfe-409b-a8b5-2a4e3f783526&cache=v2
:scheme: https
// 无法访问的请求头 status 403
// 对应的网址 https://notion-next-ruddy-mu.vercel.app/article/2023-07-11
:authority: img2023.cnblogs.com
:method: GET
:path: /blog/1663849/202307/1663849-20230711111727487-720082085.png
:scheme: https
不知道别的图床是怎么做的,cnblog的图床是失败了。我也在想next.config.js的domain里添加了域名,但也没用。
images: {
// 图片压缩
formats: ['image/avif', 'image/webp'],
// 允许next/image加载的图片 域名
domains: [
'gravatar.com',
'www.notion.so',
'avatars.githubusercontent.com',
'images.unsplash.com',
'source.unsplash.com',
'p1.qhimg.com',
'webmention.io',
'img2023.cnblogs.com',
'cnblogs.com'
]
},
啊哈,我后面又看了看请求头,以及mapImage.js,发现有个图片映射对图床做了区分。或许是这个问题。
github: https://github.com/chz8bit/NotionNext
// // 可以访问的请求头 status 200 // 对应的网址 https://www.chz8bit.top/2023-07-11 :authority: www.notion.so :method: GET :path: /image/https%3A%2F%2Fimg2023.cnblogs.com%2Fblog%2F1663849%2F202307%2F1663849-20230711111727487-720082085.png?table=block&id=05d66abe-edfe-409b-a8b5-2a4e3f783526&cache=v2 :scheme: https
// 无法访问的请求头 status 403 // 对应的网址 https://notion-next-ruddy-mu.vercel.app/article/2023-07-11 :authority: img2023.cnblogs.com :method: GET :path: /blog/1663849/202307/1663849-20230711111727487-720082085.png :scheme: https
不知道别的图床是怎么做的,cnblog的图床是失败了。我也在想next.config.js的domain里添加了域名,但也没用。
images: { // 图片压缩 formats: ['image/avif', 'image/webp'], // 允许next/image加载的图片 域名 domains: [ 'gravatar.com', 'www.notion.so', 'avatars.githubusercontent.com', 'images.unsplash.com', 'source.unsplash.com', 'p1.qhimg.com', 'webmention.io', 'img2023.cnblogs.com', 'cnblogs.com' ] },
同样的问题,请问你有解决吗
@LLeavesG 并没有解决。我换回Nobelium版本的了,发现这个不管是什么图床都会在前面加上notion.so,这样就可以图片获取成功。可能也和生命周期有关,但我没精力去研究了 :>
图床图片显示错误 在notion中编辑笔记时,插入了vika图床的照片,在notion中可以正常显示照片,在网站中显示不出来 网站地址:https://www.nicemist.xyz/article/zwww
复现步骤 在notion在新增笔记,添加图片地址:https://s1.vika.cn/space/2023/05/08/1e1f9a11de774cc7a76d14a5c69fe49c 在网站中查看新增的笔记图片,显示失败
期望的正常结果 网站可以正常显示图片
截图
环境
补充说明 已经在next.config.js中添加了图片的域名
domains: [ 'gravatar.com', 'www.notion.so', 'avatars.githubusercontent.com', 'images.unsplash.com', 'source.unsplash.com', 'p1.qhimg.com', 'webmention.io', 's1.vika.cn' ]