我有一个本地 markdown 文件,其中包含几个链接,我希望这些链接指向像 pdf 这样的本地文件。
我使用以下语法:
[my link](file:///C:/my_file.pdf)
然而当我将我的Markdown文件在Firefox页面中打开并点击链接时,什么也没有发生。
我错过了什么?是否可能打开本地文件?
我有一个本地 markdown 文件,其中包含几个链接,我希望这些链接指向像 pdf 这样的本地文件。
我使用以下语法:
[my link](file:///C:/my_file.pdf)
然而当我将我的Markdown文件在Firefox页面中打开并点击链接时,什么也没有发生。
我错过了什么?是否可能打开本地文件?
对我来说,以上所有答案都没有用。但是在看到BarryPye的回答后,我发现使用相对路径可以解决问题!
# Contents from the '/media/user/README_1.md' markdown file:
Read more [here](./README_2.md) # It works!
Read more [here](file:///media/user/README_2.md) # Doesn't work
Read more [here](/media/user/README_2.md) # Doesn't work
[书籍](../../docs/mybook.pdf)
。因此,使用../../
返回上两级目录(假设PDF文件夹与本地MD文件相距两层目录),然后进入其文件夹/docs/
。 - BringBackCommodore64在尝试了@BringBackCommodore64的答案后,我弄清楚了。
[link](file:///d:/absolute.md) # absolute filesystem path
[link](./relative1.md) # relative to opened file
[link](/relativeToProject.md) # relative to opened project
所有这些都在 Visual Studio Code
中进行了测试,并且可以正常工作,
注意: 绝对路径和相对于打开项目的路径可在编辑器中工作,但无法在 Markdown 预览模式下工作!
vscode
打开的文件夹的根路径 - Ali80你是如何打开渲染后的Markdown文件的?
如果你通过HTTP进行主机托管,即通过http://
或https://
访问,大多数现代浏览器将拒绝打开本地链接,例如使用file://
。这是一项安全特性:
出于安全考虑,Mozilla应用程序会阻止从远程文件链接到本地文件(和目录)的链接。这包括链接到硬盘驱动器上的文件,在映射的网络驱动器上的文件以及通过统一命名约定(UNC)路径访问的文件。这防止了许多不愉快的可能性,包括:
- 允许网站通过检查默认安装路径来检测您的操作系统
- 允许网站利用系统漏洞(例如Windows 95/98中的
C:\con\con
)- 允许网站检测浏览器首选项或读取敏感数据
该页面列出了一些解决方法,但我的建议是尽可能避免这样做。
你链接到本地文件的方式与链接本地图片的方式相同。这里有一个示例,链接到与Markdown源文件在同一目录下的文件start_caQtDM_7id.sh
:
您可以像链接本地图片一样链接到本地文件。以下是一个示例,将文件start_caQtDM_7id.sh
链接到与Markdown源文件相同的目录中:
![start_caQtDM_7id.sh](./start_caQtDM_7id.sh)
如果文件名中有空格,请尝试以下方法:
[file](./file%20with%20spaces.md)
[file](<./file with spaces.md>)
第一个似乎更可靠
[file](<./file with spaces.md>)
。 - Partha Mandal[a relative link](../../some/dir/filename.md)
[Link to file in another dir on same drive](/another/dir/filename.md)
[Link to file in another dir on a different drive](/D:/dir/filename.md)
鉴于提问者的示例,最后一个可能是他们在寻找的。 请注意,这也可用于显示目录而不是文件。
虽然有点晚了,但我希望这可以帮到你!
[link](/J:/dir/filename.md)
。 - John Jesus[a relative link](../../some/dir/filename.md)
[Link to file in another dir on same drive](/another/dir/filename.md)
[Link to file in another dir on a different drive](/D:/dir/filename.md)
但是我需要添加更多../
,一直到我的文件所在的文件夹,像这样:
[FileToOpen](../../../../folderW/folderX/folderY/folderZ/FileToOpen.txt)
[点击此处](MY-FILE.md)
即可。[我的超链接](/client/read-me.md)
。看起来大多数Markdown查看器不支持非http(s) URL。由于Markdown支持一些HTML标记,为什么不使用它呢?
<a href="file:///path/to/local/file.pdf">link</a>
这个重定向很好。