跳转到主要内容

用于帮助开发使用边侧包含的网站的工具

项目描述

Django应用程序,用于处理边侧包含 (ESI)

用法

ESI允许您指定需要不同缓存策略的网站部分,并将其发送到智能缓存层进行渲染。

例如,如果您想要发送一个除了欢迎信息外对每个用户都相同的页面,您可以这样渲染该信息

<html>
  <body>
    <esi:include "/esi/welcome-message" />
    ... the rest of the page ...
  </body>
</html>

例如,使用Varnish等智能代理和随armstrong.esi一起包含的中间件可以缓存此页面,并发送请求到/esi/welcome-message进行个性化。下一个访问此页面的用户将获得缓存的版本,而您的应用程序服务器只需要渲染/esi/welcome-message

armstrong.esi提供了一个模板标签,用于以与Django的url标签相同的语法渲染正确的URL。例如,上面的例子变成了:

{% load esi %}
<html>
  <body>
    {% esi welcome_message %}
    ... the rest of the page ...
  </body>
</html>

这会将我们的{% esi %}标签替换为一个指向该视图URL的<esi:include>标签。

与Varnish一起使用

Varnish可以与armstrong.esi相对容易地集成。如果页面请求中有esi标签,EsiHeaderMiddleware将设置‘X-ESI’头为‘true’。为了在需要esi处理的页面中启用varnish中的esi处理,请将以下内容添加到您的vcl_fetch方法中:

if (beresp.http.X-ESI) {
    set beresp.do_esi = true;
}

不使用ESI加载

模板标签读取DEBUG设置值,如果设置为True,则使用当前请求渲染视图而不是包含<esi:include>标签。这使得在开发中查看完整渲染的页面变得容易。

安装与配置

您可以使用pip安装armstrong.esi的最新版本。

pip install armstrong.apps.articles

请确保将armstrong.esi添加到您的INSTALLED_APPS中。您可以根据自己的喜好添加它。这是一个复制粘贴的解决方案。

INSTALLED_APPS += ["armstrong.esi"]

您还必须启用armstrong.esi中间件。为此,请将以下行添加到您的MIDDLEWARE_CLASSES中:

'armstrong.esi.middleware.EsiMiddleware'

贡献

  • 创造一些令人惊叹的东西——改进代码,添加一些功能,等等(这是最难的部分)。

  • 创建分支

  • 创建一个主题分支以存放您的更改

  • 将所有提交放入新的主题分支中

  • 提交一个pull request

项目状态

Armstrong是一个开源新闻平台,任何组织都可以免费使用。它是德克萨斯州新闻报(Texas Tribune)和湾公民(Bay Citizen)之间的合作成果,以及约翰·S·和詹姆斯·L·奈特基金会(John S. and James L. Knight Foundation)的资助。首次发布计划于2011年6月。

要跟踪开发,请务必加入Google Group

armstrong.apps.articlesArmstrong项目的一部分。你很可能正在寻找那个。

许可证

版权所有 2011-2012 湾公民和德克萨斯州新闻报

在Apache License,版本2.0(“许可证”)下授权;除非适用法律要求或书面同意,否则不得使用此文件,除非符合许可证。您可以在以下位置获取许可证副本:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证下管理许可和限制的具体语言,请参阅许可证。

项目详细信息


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

armstrong.esi-1.1.0.tar.gz (14.5 KB 查看哈希值

上传时间

支持者