2012-08-01 42 views
1

我正在部署一个基于大量静态内容的Django应用程序。所有使用该应用程序的计算机均位于Intranet上,通过nfs提供静态内容。Django静态内容通过内部网络上的nfs

可以将django配置为让用户通过它们的nfs坐骑获取静态数据,而不是通过Web服务器强制所有这些数据?

如果我在一个模板得到这个:

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

浏览器从

http://localhost:8000/path/to/img.png 

,要求形象我想要做的就是让客户端可以把它看成一个本地路径,而不是向服务器请求它。

回答

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?),并使用单独的轻量Web服务器该服务器的URL为您的MEDIA_URL

0

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