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

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这个mysql查询是对还是错?   Java中字符串列表的最大值   二维码Zxing NotFoundException Java   循环Java蛇眼程序错误   JDBCJava。sql。SQLException:[Microsoft][ODBC驱动程序管理器]描述符索引无效   java如何增加if语句中的变量以用于另一个语句?   多线程java。执行多线程数据库应用程序时发生lang.NullPointerException   java为什么HashMap比HashSet快?   java执行与接收到的字符串相对应的方法   java在我的场景中使用ModelMapper的最佳方法   java JSoup从元素列表创建数组列表   字符串Java将文件路径转换为图像   java为什么在windows上尝试启动Grails 3+时出现禁止<403>错误?   java Get实体组计数始终返回0   java正在遍历队列的concurrentHashMap,以查看是否所有队列都是空的,而其他线程可能会添加到队列中   使用ApachePOI批量读取XLSX文件   java如何摆脱arrayList中的匿名对象?   尝试重写NamingProxy内的函数时出现java错误[构造函数的参数0]   java引用Maven jar中JSSE的密钥库文件