【问题标题】:JavaScript Errors After Changing Servers (Wordpress)更改服务器后的 JavaScript 错误 (Wordpress)
【发布时间】:2021-10-19 08:30:50
【问题描述】:

我将一个 Wordpress 网站移到了新服务器上。我通过直接将文件夹复制到新服务器来做到这一点。 Web 服务器是 IIS 10.0,PHP 版本是 7.4.13。编辑帖子时,我注意到我无法从图库中添加图像。我还有一个奇怪的 JavaScript 错误,它不会在旧服务器上发生。该错误与thickbox.js有关:

控制台中的错误是

Uncaught SyntaxError: missing ) after argument list

奇怪的是原始文件不包含&quot:

我比较了 IIS 配置,没有发现任何差异。没有其他任何改变,wp-config.php 文件与数据库相同。有没有其他人遇到过类似的问题?

我遇到了this 的问题,但这与帖子的内容有关——这不是我的问题。

2021/08/19 更新

我认为不会导致此问题的原因是路由上活跃的 Cloudflare Worker。最初这只是为了根据存储在 KV 中的 url 执行 301 重定向。在服务器更改之后,我添加了一些代码来更新一些旧网址并确保使用了 https。当我移除 Worker 时,JavaScript 错误消失了。然后我将问题跟踪到我正在使用的 HTMLRewriter(代码如下)。我只是不确定为什么替换方法会导致问题?

class AttributeRewriter {
  constructor(attributeName) {
    this.attributeName = attributeName
  }

  element(element) {
    const attribute = element.getAttribute(this.attributeName)
    
    if (attribute) {
      let newValue = attribute.replace(new RegExp(blogOriginUrl, 'g'), blogPublicUrl).replace(new RegExp(csOriginUrl, 'g'), csPublicUrl).replace(new RegExp(httpUrl, 'g'), httpsUrl)

      element.setAttribute(this.attributeName, newValue)
    }
  }
}

const urlRewriter = new HTMLRewriter().on('a', new AttributeRewriter('href')).on('img', new AttributeRewriter('src')).on('img', new AttributeRewriter('srcset'))

【问题讨论】:

  • 这个错误表明你的 js 中有一个 SyntaxError。可以在本地正常使用吗?或者您可以查看事件查看器中是否有相关的错误信息。
  • @samwu,感谢您的评论。我刚刚更新了这个问题。该问题是由添加到 Cloudflare Worker 的 HTMLRewriter 引起的。我仍然不确定为什么替换方法会导致问题。

标签: wordpress iis-10 windows-server-2019 cloudflare-workers


【解决方案1】:

问题是您的工作人员正在使用HTMLRewriter 重写实际上不是 HTML 的资源。在这种情况下,它正在重写一个 JavaScript 文件。 HTMLRewriter 假定您给它的任何输入都是 HTML,并尝试对其进行解析。在这里,它看到你的 JavaScript 中出现了 <img> 标记,它认为这是一个 HTML 标记。它解析了标签,然后以稍微不同的方式再次将其写出来,这对 HTML 有效,但对 JavaScript 不正确。

在您的工作人员中,您需要确保仅将 HTMLRewriter 应用于实际上是 HTML 的响应,基于 Content-Type。喜欢:

if (response.headers.get("Content-Type").startsWith("text/html")) {
  // apply HTMLRewriter here
}

【讨论】:

    猜你喜欢
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    相关资源
    最近更新 更多