【发布时间】:2021-10-19 08:30:50
【问题描述】:
我将一个 Wordpress 网站移到了新服务器上。我通过直接将文件夹复制到新服务器来做到这一点。 Web 服务器是 IIS 10.0,PHP 版本是 7.4.13。编辑帖子时,我注意到我无法从图库中添加图像。我还有一个奇怪的 JavaScript 错误,它不会在旧服务器上发生。该错误与thickbox.js有关:
控制台中的错误是
Uncaught SyntaxError: missing ) after argument list
奇怪的是原始文件不包含":
我比较了 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