在同一URL上具有netlify + Django的静态站点

时间:2018-12-18 11:38:52

标签: django server static jekyll netlify

假设我拥有该域:

foobar.com/

我想将Netlify用于静态页面,例如

foobar.com/features/
foobar.com/pricing/
foobar.com/imprint/
etc.

但是我还在AWS的另一台服务器上有一个Django应用程序,它与Netlify服务的静态站点无关。

我的Django的网址类似

foobar.com/login/
foobar.com/dashboard/
etc.

是否可以将Netlify用于一些静态页面,而将Django应用程序用于其他页面? 我不知道怎么开始,或者这是否有可能。

3 个答案:

答案 0 :(得分:3)

这取决于您的Django应用如何处理目标,但是您可以使用HTTP状态代码200和重定向规则(重写)在Netlify上使用重写。

  

如果API支持标准的HTTP缓存机制(例如Etags或Last-Modified标头),则响应甚至会被CDN节点缓存。

已将DNS设置foobar.com到Netlify站点。

确定AWS上Django站点的域。 (proxy.foobar.com)

在Netlify站点的根目录上设置_redirects,以在Netlify上使用Proxy (rewrites)

/login/*       https://proxy.foobar.com/login/:splat  200
/dashboard/*   https://proxy.foobar.com/dashboard/:splat  200

注意: :这是您可以逐步将站点切换到Netlify的方法,而不必一次重构站点。

答案 1 :(得分:2)

设置DNS记录(例如A记录)时,可以将foobar.com指向您的AWS服务器或netlify,但不能同时指向两者。

也许您可以将网站放在不同的域中,例如dashboard.foobar.com用于Django网站。

然后您可以KEEPfoobar.com/dashboard/重定向到dashboard.foobar.com/dashboard/

答案 2 :(得分:2)

否,您不能有foobar.com指向两个不同的服务器。您必须使用子域,例如:

  • static.foobar.com-> Netlify的DNS条目
  • app.foobar.com-> Django服务器的DNS条目

或者,您经常看到的是:

  • foobar.com和www.foobar.com->指向您的主要网站(Netlify)的DNS
  • api.foobar.com和app.foobar.com->指向您的Django应用的DNS