2013-07-09 68 views
1

我都是新來的這個網絡事物和學習Django框架。我需要知道的是,我可以將我的兩個應用程序和靜態文件放到不同的託管站點嗎?我希望我已經明確提出了我的問題,如果沒有請問。使用Django提供靜態內容的不同託管站點?

+1

你的意思是在不同的主機上執行ajax請求嗎?或靜態文件與應用程序?選項和最佳解決方案取決於你正在努力完成什麼 – fideloper

+0

是的,靜態與應用程序... – Tchec

回答

2

是的,絕對。您可以在Django文檔中找到更多關於"Managing static files""Deploying static files"的信息。它只需要你的settings.py文件的一些配置。

+0

謝謝!順便頁面放慢加載? – Tchec

+0

這幾乎完全取決於您的託管設置。如果你的靜態文件主機提供了很好的速度,那麼它應該比在同一個地方提供更快的速度。瀏覽器將能夠直接從您的靜態文件服務器請求文件,而不是通過您的應用程序服務器並添加到其負載。另外,使用正確的配置,靜態文件服務器應該比設置爲提供應用程序的服務器快得多。所以,如果不分離兩者,你的頁面至少應該快一些。 //此外,只是提醒您選擇正確的答案。 –

-2

技術上,是的。但是(a)這可能會讓你的網站變慢(b)由於實施CORS(見:https://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing),許多瀏覽器將拒絕從不同於主機的資源加載資源。您需要在靜態服務器上啓用適當的標頭和選項才能使其正常工作。

正常情況下,服務於同一託管服務中的所有內容,除非您使用CDN。

+0

謝謝。如果託管來自相同服務但來自專用服務器的靜態文件會怎樣?這會太慢嗎? – Tchec

+0

@ user2397891爲什麼你不能在專用服務器上託管?但是,是的,這可能會很好。 – Marcin

+0

我不認爲這是一個關於Ajax請求的問題,需要使用CORS。 – fideloper

1

如果我正確地閱讀了你的話,我想你問的是從Django應用程序中分別提供靜態文件的最佳做法。

在我看來,最好的做法是將服務器放在像Nginx這樣的代理服務器後面。這將讓Nginx服務器靜態文件,並將應用程序請求傳遞給DJango。您的Django應用程序可以作爲fcgi進程運行。

下面是關於該主題的一些文檔:

  1. Nginx + Django with fcgi
  2. Nginx + Django with uWSGI
  3. SO question/answer on Nginx + Django with uWSGI

希望有所幫助,而不是混淆。