2013-07-09 73 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

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