遇到的问题
Ubuntu 22下 最新版的ob,svg文件不显示,链接不显示,在目录下直接打开svg文件也不显示,显示一个找不到图片的地方小图。
感觉少了什么库吧?求教!
Windows下都是好的!
版本:Obsidian 1.2.8 (snap)
系统:Ubuntu22.04LTS with gnome
问题:只有将附件默认存放路径选项选为仓库根目录“”才能成功渲染图片,选择其他选项,如我在win上常用的"当前文件所在文件夹下指定的子文件夹中"等选项都不可以
使用的内部链接为相对笔记文件的相对链接,禁用wiki链接
猜想:是否需要给予Obsidian 某些文件夹的访问权限?因为在vscode中这些.md笔记文件仍然无法渲染对应路径图片
Hi, 又碰见你了,linux版本的确实有问题,就等他们看下怎么修复了
![]()
顺便附上链接,如果问题解决了,并且后面的人有需要:
哈哈你好你好,我现在已经算是因噎废食了,一级文件夹全改成英文了,反正也不用什么特别花里胡哨的功能 ![]()
尴尬,反正确实是个bug,而且只有英文才行,discord那边有大佬跟我说
" 1. ctrl + shift + i 打開開發者模式,找到該 html 元素,再寫 css snippet 覆蓋他”
我觉得太复杂了,大不了咱还有拼音,哈哈哈
在此处总结有关此问题的信息:
1.论坛里有一些类似的问题提交。 您可以通过关注此问题来节省时间:Linux: Images and PDFs don't load if vault contains accented letters such as é (non english, non ascii, cjk, Umlauts) - #21 by Thibaultmol - Bug reports - Obsidian Forum
我使用的是 Ubuntu 22.04LTS。 虽然我确实将所有设置更改为 en_US.UTF-8,但它对我不起作用。 而我是Ubuntu的新手,所以我将所有文件夹名称更改为英文以避免这个问题。
2023 年 5 月 25 日更新
快速修复:使用 deb 包而不是 snap 版本,图片可以正常在非英语路径下加载了
是这样的,太令人惊讶了,也许中文论坛应当同时提供deb包的镜像资源而不是只有snap和flatpack
使用的 Arch Linux 遇到同样的问题。
将语言环境设置加到桌面配置里就解决了。
我使用的 hyprland,编辑~/.config/hypr/hyprland.conf
添加:
# 强制继承 UTF-8 环境变量
env = LANG,en_US.UTF-8
env = LC_ALL,en_US.UTF-8
或者加到终端的环境变量里用终端启动也测试成功了。
echo 'export LANG=en_US.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=en_US.UTF-8' >> ~/.bashrc
source ~/.bashrc
感谢!ubuntu24也有这个问题,按照你的方法解决了 ![]()
大家好,
我开发了一个 Obsidian 插件专门解决这个问题:Linux Image Rendering Fix。
正如帖子中提到的,这是 Electron/Chromium 的 upstream bug。app:// 协议无法解析包含非 ASCII 字符(中文、俄文、表情符号等)的路径。加上某些 Linux 的 Electron 构建(尤其是 Snap 和 Flatpak)缺少图片编解码器(PNG、JPEG、WebP)。这个问题从 Obsidian v1.0.0 开始已经存在了三年,至今未在应用层面修复。
插件通过 MarkdownPostProcessor 拦截 Markdown 渲染,找到每个 <img> 元素,使用 vault.adapter.readBinary() 直接从磁盘读取图片文件的二进制数据,然后用 Blob URL(blob:...)替换原来的 src。这样就完全绕过了有问题的 app:// 协议,也不依赖 Electron 的编解码器。
Settings → Community Plugins → Browse → 搜索 Linux Image Rendering Fix → Install → Enable
许可证: LGPL-3.0,完全免费开源。
已在 Ubuntu 24.04(DEB 包)上测试通过。其他发行版(Pop!_OS、Linux Mint、Fedora、Arch 等)和包格式(Snap、Flatpak、AppImage)同样适用 — 因为根因是 Electron 的上游 bug,与具体发行版无关。
LANG/LC_ALL 环境变量欢迎试用和反馈!有问题可以在 GitHub/GitLab 提 issue。![]()