Modx 数据包管理器 ext-all.js 错误

Modx packet manager ext-all.js error

我对全新安装的 modx 站点有疑问。包管理器停留在 "loading" 状态。

嗅探一些数据包显示数据交换正常,因此没有 curl 问题或其他问题。

浏览器控制台出现 ext-all.js 错误:"SyntaxError: expected expression, got '}' ext-all.js:1:41"

在 modx github 中搜索类似问题,结果是 https://github.com/modxcms/revolution/issues/12093 是时区问题吗?不知道如何测试它是否存在,或者如何避免它。 (尝试更改时区并重新安装 xampp,无效)

有没有人遇到这样的问题或者有解决办法?

js 错误在所有浏览器中触发

由于问题还没有解决,我会post研究一下。

问题的根源是 setLocale() php 函数无法在 windows 7 这样的服务器环境下设置任何 utf8 兼容的语言环境。因此在转换为 json 依赖于语言环境的函数输出时会出现错误,例如 strftime:

strftime('%b %d %Y', 1471864827)
"��� 22 2016"

所以解决这个问题 "for now" 是关于改变你的服务器环境,因为没有解决方案可以让 setLocale() 在 windows.

上与 utf8 正常工作

更新:

使用 Powershell 探索我的系统文化设置表明,全局设置语言环境 English_United States.1252 为我解决了数据包管理器的问题。但我认为这只是一个幸运的案例,因为由于 cp1252 与 utf-8 不兼容,调用 exmaple json_encode(strftime("%h", 1471864827)) 仍然 returns false,所以这个设置只能是 危险、怪异的行为临时解决方案.

据我所知,无法在 windows 系统上安装与 utf8 兼容的语言环境(setLocale 可以使用),因此在错误修复之前仍然没有任何技巧可以避免此错误。

这是 GitHub (https://github.com/modxcms/revolution/issues/13079) 上的一个已知问题。请将语言环境系统设置更改为 en_EN 进行测试。由于该语言环境在输出中不产生 UTF8 符号,错误可能会消失。