我有一个包含几个链接的本地markdown文件,并且我希望该链接指向pdf等本地文件。
我使用以下语法:
[my link](file:///C:/my_file.pdf)
但是,当我在Firefox页面中打开markdown文件并单击链接时,没有任何反应。
我到底错过了什么?是否可以打开本地文件?
我有一个包含几个链接的本地markdown文件,并且我希望该链接指向pdf等本地文件。
我使用以下语法:
[my link](file:///C:/my_file.pdf)
但是,当我在Firefox页面中打开markdown文件并单击链接时,没有任何反应。
我到底错过了什么?是否可以打开本地文件?
Answers:
您如何打开渲染的Markdown?
如果通过HTTP托管它,即通过http://
或访问它https://
,则大多数现代浏览器都会拒绝打开本地链接,例如使用file://
。这是一个安全功能:
为了安全起见,Mozilla应用程序阻止从远程文件到本地文件(和目录)的链接。这包括链接到硬盘驱动器,映射的网络驱动器上的文件,以及可以通过统一命名约定(UNC)路径访问的文件。这样可以避免许多不愉快的可能性,包括:
- 允许站点通过检查默认安装路径来检测您的操作系统
- 允许站点利用系统漏洞(例如,
C:\con\con
在Windows 95/98中)- 允许网站检测浏览器首选项或读取敏感数据
该页面上列出了一些解决方法,但我建议您尽可能避免这样做。
没有答案对我有用。但是受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
链接到本地文件的方式与链接到本地图像的方式相同。这是一个链接到start_caQtDM_7id.sh
markdown源所在目录中的文件的示例:
![start_caQtDM_7id.sh](./start_caQtDM_7id.sh)
在弄乱@ 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预览模式下不起作用!
谢谢drift0pine!
第一个解决方案,行得通!
[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)
如果文件与.md所在的目录位于同一目录中,则只需放置即可[Click here](MY-FILE.md)
。
否则,可以从项目的根目录创建路径。因此,如果整个项目/ git-repo根目录都称为“ my-app”,并且想要指向my-app / client / read-me.md,请尝试[My hyperlink](/client/read-me.md)
。
至少可以在Chrome浏览器上使用。
这是一个古老的问题,但对我而言,它似乎仍无法完全解决OP的问题。在我的经验中,使用Firefox“ Markdown Viewer”插件时,选择的将安全问题作为可能的问题的答案实际上通常不是问题。另外,OP似乎正在使用MS-Windows,因此存在指定不同驱动器的附加问题。
因此,对于Windows(以及我见过的其他Markdown渲染器)上的“ Markdown Viewer”插件,这里有一个更完整但更简单的答案:只需像往常一样输入本地路径,如果它是绝对路径确保以斜杠开头。所以:
[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)
给出他们的例子,最后一个可能是OP所要寻找的。注意,这也可以用于显示目录而不是文件。
虽然晚了,但希望对您有所帮助!