帮助开发利用边缘的站点的实用程序包括
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.articles是Armstrong项目的一部分。你是 可能是在找那个。
许可证
版权所有2011-2012 Bay Citizen and Texas Tribune
根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。