【问题标题】:Best method to replicate a website复制网站的最佳方法
【发布时间】:2012-06-20 10:35:09
【问题描述】:

我最近为我的一位客户创建了一个目录。该网站是完整的,但他想要该网站的复制版本,以便他可以测试该网站并学习如何使用它。

要完全复制他的网站需要几个小时,因为我必须更改网站中的每个超链接和 URL。

由于我的客户有点咄咄逼人并希望尽快完成,我想知道是否可以创建一个测试网站并添加一些 JavaScript 来每次都替换他的 URL(直到我创建一个完整的测试解决方案?) .

例如,如果是:

<a href="www.mydomain.com/contact-us">Test</a>

它会将其替换为:

<a href="www.mydomain.com/test/contact-us"></a>

这可能吗? 暂时推荐,直到我创建完整的测试解决方案?

【问题讨论】:

  • "我将不得不更改网站中的每个超链接和 URL" - 为什么?您没有使用相对 URL 吗?
  • 如果您的所有链接、css 和 javascript 引用都是相对路径,那么网站所在的位置应该不会有所不同。
  • 你们的发展战略是怎样的?您是否有在其上测试代码的开发服务器?也许你可以让你的客户玩这个。
  • 附带说明:让这成为未来 Web 开发的一个教训。 始终确保(基本)url 是可配置的,这样您就不必在每次将站点复制到不同位置时都更改它。这可能需要您 5 分钟而不是 5 小时。
  • 作为快速修复,在 Notepad++ 中打开站点文件,然后通过文件进行替换(N++ 会自动为您执行此操作),用配置变量替换实时 URL,然后设置 URL 变量根据测试站点的需要。

标签: php javascript jquery html replication


【解决方案1】:

您确实应该使用相对路径,以便文件相互交互,无论文件位于何处。

也就是说,这里有一个可能的快速 JS 解决方案,您可以在使链接相对而不是绝对链接时暂时使用:

$("a").each(function() {
  var href = this.href;
  href = href.replace("mydomain.com/", "mydomain.com/test/");
  this.href = href;
});

【讨论】:

    【解决方案2】:

    在 Notepad++ 或任何支持文件替换的编辑器中打开站点文件,然后通过文件进行替换(N++ 会自动为您执行此操作),用配置变量替换实时 URL,然后根据需要设置 URL 变量用于测试站点。

    现在您有了一个用于 URL 的配置变量,如果客户端想要更改域或者您想要部署到其他地方,这将很容易。

    【讨论】:

      【解决方案3】:

      当然可以使用 javascript 来整理超链接,特别是使用 jQuery 之类的框架非常容易。

      $('a').each(Function(e){
       e.attr('href', e.attr('href').replace(/http:\/\/mainsite.com/gi, 'http://newsite.com'));
      });
      

      希望您的 css 文件、链接 href 等中的 URL 是相对的,否则您也需要更改它们。此时使用php解决方案会更合适。

      【讨论】:

      • a 应该像 $('a').each 一样引用
      【解决方案4】:

      wget 命令行实用程序有一个--convert-links 选项。如果您使用该选项下载网站,wget 将以“本地浏览可靠工作”的方式转换链接。

      【讨论】:

        猜你喜欢
        • 2011-10-09
        • 2018-03-10
        • 2013-04-14
        • 1970-01-01
        • 2023-03-14
        • 2010-09-25
        • 1970-01-01
        • 1970-01-01
        • 2011-09-20
        相关资源
        最近更新 更多