帮助开发利用边缘的站点的实用程序包括

armstrong.esi的Python项目详细描述


django处理edge side include (ESI)的应用程序

用法

esi允许您指定站点中需要不同缓存的部分 策略,可以发送到智能缓存层进行渲染。

例如,如果要发送对每个用户都相同的页面,除了 对于欢迎消息,您可以将该消息呈现为:

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

智能代理(如Varnish)和 armstrong.esi可以缓存此页,并发送/esi/welcome消息的请求 为了个性化。下一个访问该页面的用户将获得缓存的版本和 您的应用程序服务器只需要呈现/esi/welcome消息

armstrong.esi提供了一个模板标记,用于使用相同的 语法为django的url标记。例如,上面的示例变成:

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

这将用指向的<esi:include>标记替换我们的{% esi %}标记 该视图的url。

与清漆一起使用

Varnish很容易与armstrong.esi集成。eSiHeader终端软件 如果页面请求上有esi标记,则将“x-esi”头设置为“true”。到 在Varnish中为需要它的页面启用ESI处理,添加以下内容 您的vcl_获取方法:

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

无ESI加载

模板标记读取DEBUGsettings值,如果设置为True 使用当前请求呈现视图,而不是包含 <esi:include>标记。这使得在开发中很容易看到完全呈现的页面。

安装和配置

您可以使用pip

pip install armstrong.apps.articles

确保将armstrong.esi添加到INSTALLED_APPS中。你可以 你想怎么加就怎么加。这可以作为复制和粘贴解决方案:

INSTALLED_APPS += ["armstrong.esi"]

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

'armstrong.esi.middleware.EsiMiddleware'

贡献

  • 创造一些很棒的东西——让代码更好,添加一些功能, 不管怎样(这是最难的部分)。
  • Fork it
  • 创建主题分支以容纳您的更改
  • 在新主题分支中获取所有提交内容
  • 提交pull request

项目状态

阿姆斯特朗是一个开源的新闻平台,任何人都可以免费使用 组织。这是Texas Tribune之间合作的结果 还有Bay Citizen,还有John S. and James L. Knight Foundation的拨款。第一次发布定于2011年6月。

要跟踪开发,请确保加入Google Group

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

许可证

版权所有2011-2012 Bay Citizen and Texas Tribune

根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java应用程序不是在Eclipse中运行,而是在命令行中运行   swing Java图形组件问题。似乎找不到错误   我需要键盘。close();让代码正常工作?   Springboot中的java HttpSession   抽象语法树我想添加一个语句。我试图解析它,java解析器异常被抛出。如何克服它?   java Hibernate:清理会话   具有不连续子集的java划分问题   java正则表达式查找最后一个冒号后的字符串   java从SpringShell执行OS命令   Java扫描器字符串输入   java字符串索引越界异常(charAt)   java执行器服务终止被卡住   Springockito没有继承java@ContextConfiguration   java如何为一个servlet映射多个url   java安卓获取命令的stderr   java生成类型。表:数据库中的大数字   安卓 Getter Setter返回NothingJava