这似乎有可能,但我遗漏了一些东西。我正在使用plone.app.theming(重氮)。我正试图从冷聚变网站上拉页面。我可以使用第一页加载,但页面然后有引用更多数据页的网址。网址格式如下“./undergraduates_classes_info.cfm?crse=001A§num=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传递给命令,以便我可以获取实际数据。
任何帮助都是值得欣赏的 - 也许我正在接近这个错误?
答案 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可以包括来自远程站点的主题资源(例如模板,图像),但它并不打算也不能真正从远程站点代理内容。