使用 Wagtail 作为 API 层
Using Wagtail as an API layer
我的公司正在评估 Wagtail 作为我们网站部分内容的 CMS。目前我们正在 运行ning Python 2.7 和 Django 1.5(不要问...)。我们有能力在一个单独的实例上 运行 Wagtail,它可以包含 Python/Django 的最新版本,但我们将无法 运行 Wagtail 在我们的主应用程序中开箱即用。
我们正在考虑将 Wagtail 严格用作 CMS,然后将来自我们主网站的请求代理到 Wagtail 实例并仅返回生成的标记。
有没有人做过类似的事情,或者可以提供对我们可能采取的过程的见解? Wagtail 是否提供开箱即用的功能?我们可能会遇到什么潜在的陷阱,或者我们应该注意什么?
这可能意味着 "entire pages" 不是存储在 Wagtail 中,而是我们将其视为一种存储不同内容片段的方式:将加载到我们主页中的一段文本,或动态搜索结果页面。
是的,Wagtail 确实通过其 API:
提供了这样的功能
http://docs.wagtail.io/en/v2.1/advanced_topics/api/
您可以使用 JavaScript 从主网站的前端使用 API(React 和 Vue 是这种方法的流行选项,但如果您不这样做,则它们不是必需的不需要带有路由等的复杂单页应用程序),或者从后端从 Django 1.5 应用程序的视图发出 HTTP 请求。
至于潜在的陷阱,主要问题是 Wagtail 预览无法开箱即用,因为 Wagtail 不知道内容将如何呈现。如果您在呈现 Wagtail API 内容的站点上有可预测的 URL 结构,则可以配置预览机制来处理此问题。
如果 API 方法不是您想要的,您还可以考虑在主站点中嵌入渲染片段的方法。例如,如果您在主站点前面使用 Varnish,则可以利用 Edge Side Includes:
https://varnish-cache.org/docs/3.0/tutorial/esi.html
最后,您可能会发现最近关于 Wagtail 作为 'headless' CMS 的演讲很有用:
我的公司正在评估 Wagtail 作为我们网站部分内容的 CMS。目前我们正在 运行ning Python 2.7 和 Django 1.5(不要问...)。我们有能力在一个单独的实例上 运行 Wagtail,它可以包含 Python/Django 的最新版本,但我们将无法 运行 Wagtail 在我们的主应用程序中开箱即用。
我们正在考虑将 Wagtail 严格用作 CMS,然后将来自我们主网站的请求代理到 Wagtail 实例并仅返回生成的标记。
有没有人做过类似的事情,或者可以提供对我们可能采取的过程的见解? Wagtail 是否提供开箱即用的功能?我们可能会遇到什么潜在的陷阱,或者我们应该注意什么?
这可能意味着 "entire pages" 不是存储在 Wagtail 中,而是我们将其视为一种存储不同内容片段的方式:将加载到我们主页中的一段文本,或动态搜索结果页面。
是的,Wagtail 确实通过其 API:
提供了这样的功能http://docs.wagtail.io/en/v2.1/advanced_topics/api/
您可以使用 JavaScript 从主网站的前端使用 API(React 和 Vue 是这种方法的流行选项,但如果您不这样做,则它们不是必需的不需要带有路由等的复杂单页应用程序),或者从后端从 Django 1.5 应用程序的视图发出 HTTP 请求。
至于潜在的陷阱,主要问题是 Wagtail 预览无法开箱即用,因为 Wagtail 不知道内容将如何呈现。如果您在呈现 Wagtail API 内容的站点上有可预测的 URL 结构,则可以配置预览机制来处理此问题。
如果 API 方法不是您想要的,您还可以考虑在主站点中嵌入渲染片段的方法。例如,如果您在主站点前面使用 Varnish,则可以利用 Edge Side Includes:
https://varnish-cache.org/docs/3.0/tutorial/esi.html
最后,您可能会发现最近关于 Wagtail 作为 'headless' CMS 的演讲很有用: