我正在部署基于大量静态内容的Django应用程序。使用该应用程序的所有计算机都在Intranet上,静态内容可通过nfs获得。
是否可以将django配置为允许用户通过其nfs挂载获取静态数据,而不是通过Web服务器强制执行?
如果我在模板中有这个:
<img src="/path/to/img.png"/>
浏览器正在从
请求该图像http://localhost:8000/path/to/img.png
我要做的是让客户端将其视为本地路径,而不是向服务器询问它。
答案 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中加载内容时使用该常量。