Hyperlink 如何使用标记语法链接到任何本地文件?

Hyperlink 如何使用标记语法链接到任何本地文件?,hyperlink,markdown,Hyperlink,Markdown,我有一个本地降价文件包含几个链接,我希望链接头到本地文件,如pdf 我使用以下语法: [my link](file:///C:/my_file.pdf) 但是当我在Firefox页面上打开我的降价文件并点击链接时,什么都没有发生 我到底错过了什么?是否可以打开本地文件?如何打开渲染的标记 如果通过HTTP托管,即通过HTTP://或https://访问,大多数现代浏览器将拒绝打开本地链接,例如使用文件://。这是一个: 出于安全目的,Mozilla应用程序阻止从远程文件指向本地文件(和目录)的

我有一个本地降价文件包含几个链接,我希望链接头到本地文件,如pdf

我使用以下语法:

[my link](file:///C:/my_file.pdf)
但是当我在Firefox页面上打开我的降价文件并点击链接时,什么都没有发生


我到底错过了什么?是否可以打开本地文件?

如何打开渲染的标记

如果通过HTTP托管,即通过
HTTP://
https://
访问,大多数现代浏览器将拒绝打开本地链接,例如使用
文件://
。这是一个:

出于安全目的,Mozilla应用程序阻止从远程文件指向本地文件(和目录)的链接。这包括链接到硬盘驱动器、映射网络驱动器上的文件以及通过(UNC)路径访问的文件。这可以防止一些不愉快的可能性,包括:

  • 允许站点通过检查默认安装路径来检测您的操作系统
  • 允许站点利用系统漏洞(例如,Windows 95/98中的
    C:\con\con
  • 允许站点检测浏览器首选项或读取敏感数据

该页面上列出了一些解决方法,但我的建议是,如果可以的话,尽量避免这样做。

您链接到本地文件的方式与链接到本地图像的方式相同。下面是链接到与标记源位于同一目录中的文件
start\u caQtDM\u 7id.sh
的示例:

![start_caQtDM_7id.sh](./start_caQtDM_7id.sh) 

没有一个答案对我有用。但受巴里皮回答的启发,我发现它在使用相对路径时有效

# 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

如果该文件与.md所在的目录相同,则只需将
[单击此处](MY-file.md)
放入即可

否则,您可以从项目的根目录创建路径。因此,如果整个project/git repo根目录被称为“my app”,并且想要指向my app/client/read-me.md,那么请尝试
[my hyperlink](/client/read-me.md)


至少可以在Chrome上使用。

在与@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中测试并工作


注意:绝对路径在编辑器中工作,但在标记预览模式下不工作

如果文件名中有空格,请尝试以下操作:

[file](./file%20with%20spaces.md)
[file](<./file with spaces.md>)
[文件](./文件%20with%20spaces.md)
[文件]()

第一个问题似乎更可靠

这是一个老生常谈的问题,但对我来说,它似乎还没有完全回答OP的问题。根据我的经验,当使用Firefox“Markdown Viewer”插件时,选择的关于安全性是可能的问题的答案通常是而不是。此外,OP似乎正在使用MS Windows,因此还存在指定不同驱动器的附加问题

因此,对于Windows上的“Markdown Viewer”插件(以及我见过的其他Markdown渲染器),这里有一个更完整但更简单的答案:只需像平常一样输入本地路径,如果它是绝对路径,请确保以斜杠开始。因此:

[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想要的。 注意:这也可用于显示目录而不是文件

虽然很晚了,但我希望这能有所帮助

谢谢你,漂泊者

第一个解决方案,很有效

[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)

正如我所说,我用Mozilla Firefox 40.0.3和“markdown Viewer”插件打开了我的markdown文件。啊,你以前没有提到过那个插件;-)我用MarkdownPad的HTML导出(我认为“Firefox页面”的意思)尝试了它。请查看插件的帮助/支持频道。以“/”开头的url路径意味着在本地目录中查找,而以“/”开头的url路径意味着在基本目录中查找。这是一种广泛使用的Linux约定。我怀疑您可能没有关闭full base dir?这与@BarryPye的答案有什么不同?@javadba BarryPye答案中的感叹号(!)将文件呈现为图像。问题涉及到另一个文件的链接。(我知道,慢,慢,回答你的问题,但我想其他人可能想知道答案。)重要的是在]和(字符)之间不要有空格。@jbustamovej如果文件名中有空格,请参见Zikoatt。这个“!”很重要!谢谢!这是Github风格的标记语法的一部分,用于渲染图像,请参见“图像”下面也回答了这里,似乎是一个重复的问题?:Vim很好地突出显示标记,包括可点击的web链接。唉,本地链接虽然突出显示,但不会打开。你也可以使用。它工作得很好。不清楚你的问题是什么,你在问什么。问题是:哪一个文件名更可靠?你的注释是很重要!谢谢!不需要!在同一个目录中是的,对于绝对路径,在驱动器名前加一个斜杠对我来说很有用
[link](/J:/dir/filename.md)