【问题标题】:HTML website stops working as expected after migrating servers迁移服务器后 HTML 网站按预期停止工作
【发布时间】:2019-06-01 06:07:24
【问题描述】:

我是一名多年的网络开发人员,我对网站和开发有很多了解。但是这个问题我还不太了解,我以前从来没有遇到过,因为它对我来说很神秘。

我在主服务器和域上有 HTML 网站,它在那里工作正常,所有文件都已加载,设计看起来应该如此。 现在,我已经将同一个网站,所有相同的文件移到了一个新的服务器和域中,而网站只是崩溃了,没有触及任何东西。它工作正常,但设计看起来不应该,Javascript 在控制台中抛出错误,设计结构丢失。所需的所有文件都已加载,我可以在 Chrome 开发人员工具的网络选项卡中看到,但网站设计结构丢失并且 JS 脚本无法正常工作。现在这是有趣的部分。如果我将同一个网站从新服务器转移到主服务器,该网站再次看起来不错。我整天都在伸头,找不到任何问题。 我还尝试在 WAMP 上本地运行相同的网站,甚至只是从桌面上运行相同的网站,因为它只是 HTML,并且该网站在新服务器中已损坏。

主网站 URL:[已删除,因为问题已修复] 新服务器的网站 URL:[已修复问题,已删除]

有什么想法吗?有人遇到过这种情况吗?

编辑:

问题已找到并已修复。这是编码问题。在将文件从一台服务器传输到另一台服务器时更改了文件的编码。

【问题讨论】:

  • 好吧,乍一看,bootstrap.min.js(损坏的站点从中出错的文件之一)正在由第一个(工作)服务器作为text/javascript提供服务,但在第二个(损坏的)服务器,它被用作application/javascript。实际上,所有 .js 文件都是这种情况。也许这是你问题的一部分。
  • bootstrap.min.jsprettyphoto.js 的内容在两个站点上是不同的。不确定问题是什么,但他们在新网站上抛出错误。

标签: javascript html web


【解决方案1】:

“新”网站存在三个错误。两个是来自bootstrap.min.jsprettyphoto.js 的解析错误。这些文件在旧站点和新站点之间是不同的。看起来这可能只是换行符的问题,可能是传输文件时的编码问题。

第三个错误来自main.js,因为$.affix 不是函数。词缀插件是bootstrap添加的,可能是解析错误导致无法正常工作。

我猜如果您将 bootstrap.min.jsprettyphoto.js 从旧站点重新复制到新站点,它将解决问题。

进一步查看bootstrap.min.jsprettyphoto.js,两个文件中都有一些无意义的字符。这证明这是一个编码问题,可能是在将文件从一个地方复制到另一个地方时引入的。

prettyphoto.js

be/"),movie_id=mov��\��\��Z��Y��\��\��\&")>0&&(movie_id=

bootstrap.min.js

).each(function(){YaYaКV�bhYa Ya� Yaunction(){var d=a

@Herohtar 指出两个版本文件的编码不同:旧站点上的windows-1257 和新站点上的GBK。文件可能被编辑(例如在 IDE 或文本编辑器中)并保存,并且编辑器中的默认编码与原始编码不同,并且没有正确重新编码(或解析原始编码)。

【讨论】:

  • 这绝对是某种编码问题。如果您在浏览器中查看文件并查看页面信息,它会说第一台服务器上文件的文本编码是windows-1257,但在第二台服务器上它是GBK
  • @Herohtar 是的,可能是文件被编辑(例如在 IDE 或其他东西中)并保存,并且编辑器中的默认编码与原始编码不同,并且没有重新编码(或解析原始编码)正确。
  • @Cully 谢谢。从字面上看,只是挽救了我的一天。毕竟是编码问题,我不确定为什么新服务器在上传到它时会更改所有文件的编码,甚至 .php 也被修改了一些额外的新行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-08
  • 1970-01-01
  • 2011-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多