静态站点与netlify + Django 同上url

Static site with netlify + Django on the same url

假设我拥有该域:

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 应用程序用于其他页面? 我不知道如何开始或这是否可能。

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

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

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

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

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

或者,你经常看到的是:

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

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

If the API supports standard HTTP caching mechanisms like Etags or Last-Modified headers, the responses will even get cached by CDN nodes.

将 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 而无需一次重构站点的方法。