plone.app.theming包括来自外部网站的内容

时间:2012-06-22 20:34:29

标签: xsd plone diazo xdv

这似乎有可能,但我遗漏了一些东西。我正在使用plone.app.theming(重氮)。我正试图从冷聚变网站上拉页面。我可以使用第一页加载,但页面然后有引用更多数据页的网址。网址格式如下“./undergraduates_classes_info.cfm?crse=001A&sectnum=A”(Plone非常乐意解析)我尝试了各种各样的排列,我似乎无法得到它工作。

 <xsl:param name="ExtUrl" select="'http://exeternalsite'" />
    <xsl:template match="a/@href[contains(.,'/undergraduates')]">
        <xsl:attribute name="href">
            <xsl:value-of select="concat($ExtUrl, .)" />
        </xsl:attribute>
 </xsl:template>

我还需要将url传递给命令,以便我可以获取实际数据。

任何帮助都是值得欣赏的 - 也许我正在接近这个错误?

3 个答案:

答案 0 :(得分:2)

在完成处理请求之前依赖远程服务是一个非常糟糕的主意。想象一下,网站出现故障还是很慢?现在,您在服务页面之前等待它完成或超时。

更好的解决方案是使用javascript来提取页面内容。

看起来像这样:

$(document).ready(function(){
  $('#containerofcontent').load('http://remoteurl #contentselector');
});

假设您的网站位于不同的域中,您还需要在远程站点上设置一些特殊标头,以便浏览器允许ajax请求:

Access-Control-Allow-Origin: http://plonesiteurl

使用任何Web服务器覆盖标题都非常容易。

答案 1 :(得分:2)

您可以通过指定href属性来包含外部网站中的内容,如下所示:http://docs.diazo.org/en/latest/advanced.html#including-external-content

您需要在plone.app.theming中启用“读取网络”选项以允许包含外部网址,请参阅:http://pypi.python.org/pypi/plone.app.theming#usage

正如其他人所指出的那样,这确实会对性能产生影响,但如果您正在缓存可能正常的结果页面。您可以通过缓存片段并使用重氮网站上记录的SSI或ESI方法选项来避免性能成本,但您需要设置Nginx以运行filter.xsl样式表或重氮代理。

答案 2 :(得分:0)

除非我误解你的问题(总是可能的),否则我认为你误解了主题。 p.a.theming可以包括来自远程站点的主题资源(例如模板,图像),但它并不打算也不能真正从远程站点代理内容