0

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

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

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

django 有没有办法让“file:///C:/path/file.html”方案在生成的动态页面中工作?

4

2 回答 2

2

该问题与 django 无关,而是与浏览器有关(在我的情况下为 firefox 4)。出于安全原因,Firefox 不允许从远程站点链接到本地​​文件。我必须禁用此安全检查http://localhost:8000并且它有效。由于更改仅影响 localhost 它不应该是一个安全问题。这个链接解释了如何做到这一点:

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

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 选项(“高级 -> 受信任 -> “允许本地链接”)。

其他浏览器可能具有此安全检查,因此您必须根据您使用的操作系统和浏览器进行不同的更改。

于 2011-04-30T14:43:56.133 回答
0

:是错的。改为使用|

<a href="file:///C|/somepath/mylocalfile.html">Title of local file</a>
于 2011-04-26T09:20:19.443 回答