2012-08-01 48 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中加載內容時使用該常量。