【问题标题】:Static site with netlify + Django on the same url具有 netlify + Django 的静态站点在同一个 url 上
【发布时间】:2019-05-18 19:45:45
【问题描述】:

假设我拥有该域:

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

【问题讨论】:

  • @talves 的回答是最好的,根据 Netlify 技术支持(我在那个团队工作)
  • @fool 谢谢,刚刚更新了

标签: django server static jekyll netlify


【解决方案1】:

这将取决于您的 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,而无需一次全部重构网站。

【讨论】:

  • 如果您问我们,这就是 Netlify 技术支持会给您的答案。它既利用了我们的 CDN,又允许您在同一域中无缝使用动态内容
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

    不,您不能让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 应用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-05
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 2021-01-01
      • 1970-01-01
      • 2012-05-18
      相关资源
      最近更新 更多