Django通过内联网上的nfs静态内容

时间:2012-08-01 20:34:44

标签: django

我正在部署基于大量静态内容的Django应用程序。使用该应用程序的所有计算机都在Intranet上,静态内容可通过nfs获得。

是否可以将django配置为允许用户通过其nfs挂载获取静态数据,而不是通过Web服务器强制执行?

如果我在模板中有这个:

<img src="/path/to/img.png"/>

浏览器正在从

请求该图像
http://localhost:8000/path/to/img.png

我要做的是让客户端将其视为本地路径,而不是向服务器询问它。

2 个答案:

答案 0 :(得分:5)

要引用文件系统中的文件(已挂载NFS或其他方式),要使用的URI为file:///path/to/file。但是,在您的情况下,将无法正常工作 - <a href="file:///path">仅适用于从本地文件系统加载的静态HTML文件。

出于安全原因,不允许网页访问本地文件系统。见Why can't I do <img src="C:/localfile.jpg">?

如果您想加快对静态文件的访问,可以选择设置一个专门用于维护静态文件的轻量级网络服务器(可能是nginx?或lighttpd?或者mongoose?)并将该服务器的网址用作MEDIA_URL

答案 1 :(得分:0)

好吧,你应该尝试一下。如果django将静态内容路径视为另一个常量,那么您的网络共享路径应该可以正常工作。但是,如果不是,那么你可以尝试定义自己的常量,例如:static_on_network_share或者其他东西,并在模板/ html中加载内容时使用该常量。