3

这似乎是可能的,但我错过了一些东西。我正在使用 plone.app.theming(重氮)。我正在尝试从冷聚变站点中提取页面。我可以使用加载的第一页,但该页面随后具有引用更多数据页的 url。网址的格式如下“./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 传递给命令,以便我可以取回实际数据。

感谢您提供任何帮助-也许我的处理方法不正确?

4

3 回答 3

2

在完成处理请求之前依赖远程服务是一个非常糟糕的主意。想象一下该站点出现故障或运行缓慢?现在,您正在等待它完成或超时,然后再提供您的页面。

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

它可能看起来像这样:

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

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

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

不过,用任何 Web 服务器覆盖标头都很容易。

于 2012-06-23T02:06:31.920 回答
2

您可以通过指定此处记录的 href 属性来包含来自外部站点的内容:http: //docs.diazo.org/en/latest/advanced.html#include-external-content

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

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

于 2012-06-27T19:57:53.407 回答
0

除非我误解了你的问题(总是可能的),否则我认为你误解了patheming。patheming 可以包括来自远程站点的主题资产(例如模板、图像),但它既不适合也不真正能够代理来自远程站点 的内容。

于 2012-06-22T21:34:33.357 回答