【发布时间】:2013-02-23 02:55:29
【问题描述】:
我有一个备用网站。像Wayback machine 这样的东西。当我返回 HTML 的内容时,很明显,链接的文档(如图像、javascript 文件、css 文件等)是从原始 Web 服务器(而不是我的服务器)加载的。现在我想替换这些链接,以便从我的服务器加载它们。我有两种方法可以采取:
- 使用 Java 或 PHP 在服务器端进行。我可以同时使用 Java 和 PHP 来做到这一点。例如在 Java 中,我可以使用 jSoup 来解析 HTML 并替换链接。
- 在客户端使用 jQuery。
使用第二种方法意味着我不必在我的服务器上添加负载来解析 HTML,但我认为,一旦页面被加载,文件就会开始从原始服务器下载,用户的带宽会浪费了。
另一方面,如果我能以某种方式确定图像是否已成功下载,我可以跳过从我的服务器下载并让用户使用从原始服务器下载的文件。
您对此有何建议?
更新
关于相对链接和绝对链接,我应该做一些澄清。我的服务上的链接存储为绝对路径。但是,HTML 文档可能同时具有这两种类型的链接。我需要做的是:
- 将
http://stackoverflow.com/images/image.png转换为http://mysite.com/view/content?url=http://stackoverflow.com/images/image.png - 将
/images/image.png(在http://stackoverflow.com上)转换为http://mysite.com/view/content?url=http://stackoverflow.com/images/image.png
简而言之,HTML 上的相对链接应转换为绝对链接,然后作为 URL 参数发送到我的网站。
【问题讨论】:
-
链接是相对于网址还是硬编码到网址?
-
两者。文档是从网络上抓取的。网站可以使用任何东西。
标签: java php jquery archive webarchive