Django:如何使用href="file:///C:/path/file.html"这样的链接直接在浏览器中打开本地html文件



我正在制作一个django应用程序来索引我的本地文件集合(html, text, pdf,…)我把这些文件保存在不同的分区和目录中,这样我就可以根据文件的名称、日期、标题等轻松地进行搜索。它就像一个高级的unix工具。它生成一个带有文件链接的动态页面,在html文件的情况下,我应该在浏览器中单击并加载本地文件。生成的页面包含如下链接:

<a href="file:///C:/somepath/mylocalfile.html">Title of local file</a></li>

问题是,当我点击它什么也不做,甚至没有错误消息。如果我保存这个生成的html页面并直接在浏览器中打开它,它就可以正常工作。我认为它不工作的安全问题,但我不假装使用它作为一个web应用程序在互联网上,但作为一个本地应用程序。我正在使用django开发服务器。我知道django可以将静态文件放在一个特定的目录中,但这不是我需要的(文件在多个位置);我希望将文件作为本地文件加载到浏览器中,而不是通过服务器。这能做到吗?

是否有一种方法在django中使"file:///C:/path/file.html"方案在生成的动态页面中工作?

这个问题与django无关,而是与浏览器有关(在我的例子中是firefox 4)。出于安全原因,firefox不允许从远程站点链接到本地文件。我必须禁用http://localhost:8000的安全检查,它工作了。由于更改只影响本地主机,因此不应该是安全问题。这个链接解释了怎么做:

http://kb.mozillazine.org/Links_to_local_pages_don%27t_work基本上,你需要做的就是在你的firefox配置文件文件夹中创建一个user.js文件,如下所示:

user_pref("capability.policy.policynames", "localfilelinks");
user_pref("capability.policy.localfilelinks.sites", "http://localhost:8000");
user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess");

如果你使用noscript,你还必须改变一些配置:noscript选项("高级->可信->允许本地链接")。

其他浏览器可能有这种安全检查,所以你必须根据你使用的操作系统和浏览器做不同的更改。

:错误。用|代替。

<a href="file:///C|/somepath/mylocalfile.html">Title of local file</a>

相关内容

  • 没有找到相关文章

最新更新