WP管理员缺少图标、大量的JavaScript错误,但仅当SCRIPT_DEBUG为FALSE时

时间:2018-07-18 作者:Jonathan Stegall

我可以访问一台Linux/Apache服务器,在那里我试图部署WordPress。为了避免这个错误,我用默认的2017主题和所有禁用的插件对其进行了测试。

当我以管理员身份登录到任何wp admin页面时,左侧导航中的大多数图标都会丢失,选中的复选框没有任何复选框(例如),浏览器控制台会充满JavaScript错误。

例如,在仪表板页面上,没有任何图标可见,错误控制台的内容如下:

Uncaught TypeError: a.widget is not a function
at load-scripts.php?c=0&load[]=hoverIntent,common,admin-bar,wp-ajax-response,jquery-color,wp-lists,quicktags,jquery-query,admin-comments,jquery-ui-core,jquery-&load[]=ui-widget,jquery-ui-mouse,jquery-ui-sortable,postbox,underscore,wp-util,wp-a11y,dashboard,thickbox,plugin-install,updates,shortc&load[]=ode,media-upload,svg-painter,heartbeat,wp-auth-check,wplink,jquery-ui-position,jquery-ui-menu,jquery-ui-autocomplete&ver=4.9.7:300
at load-scripts.php?c=0&load[]=hoverIntent,common,admin-bar,wp-ajax-response,jquery-color,wp-lists,quicktags,jquery-query,admin-comments,jquery-ui-core,jquery-&load[]=ui-widget,jquery-ui-mouse,jquery-ui-sortable,postbox,underscore,wp-util,wp-a11y,dashboard,thickbox,plugin-install,updates,shortc&load[]=ode,media-upload,svg-painter,heartbeat,wp-auth-check,wplink,jquery-ui-position,jquery-ui-menu,jquery-ui-autocomplete&ver=4.9.7:300
at load-scripts.php?c=0&load[]=hoverIntent,common,admin-bar,wp-ajax-response,jquery-color,wp-lists,quicktags,jquery-query,admin-comments,jquery-ui-core,jquery-&load[]=ui-widget,jquery-ui-mouse,jquery-ui-sortable,postbox,underscore,wp-util,wp-a11y,dashboard,thickbox,plugin-install,updates,shortc&load[]=ode,media-upload,svg-painter,heartbeat,wp-auth-check,wplink,jquery-ui-position,jquery-ui-menu,jquery-ui-autocomplete&ver=4.9.7:300
当我在浏览器中查看网络选项卡时(我在Chrome、Safari和Firefox中查看过,主机也查看过),所有请求都返回200状态。至少,似乎没有任何请求被阻止。

如果我添加SCRIPT_DEBUG=true 至wp配置。php文件,所有这些错误都会停止,界面显示正常情况。

我无法在本地复制此问题,我的主机似乎无法告诉我出了什么问题(尽管他们确实看到了)。我可以告诉他们去调查什么,和/或我可以调查什么?

更新:更清楚地说,我怀疑这可能是服务器上的权限问题。也许服务器无法按照WordPress的预期连接文件。但是主机一直找不到任何类似的东西,而且我对Linux/文件权限了解不够,不知道该告诉他们要查找什么,甚至不知道是否正在发生这种情况。

3 个回复
SO网友:HU ist Sebastian

您是否将自己的Javascript加载到管理员中?如果我没记错的话,如果SCRIPT\\u DEBUG设置为true,则javascripts不会被占用,而是单独加载的。因此,如果自定义javascript不能很好地发挥作用,这可能会导致整个自以为是的javascript损坏,无法正确运行。

尝试一个接一个地删除添加的javascripts,并检查是否有任何变化。

SO网友:Fayaz

JavaScript中唯一不同的逻辑是SCRIPT_DEBUG 设置为true vs。false is:何时SCRIPT_DEBUG 设置为true, 正在加载主JavaScript源文件,并且正常(当SCRIPT_DEBUG 设置为false), 这个minified versions (例如。file.min.js) 已加载concatenation &;compression.

所以很明显,JS文件的缩小版本正在引发问题。也许他们甚至已经腐败了。

用WordPress的版本替换WordPress core。org,这可能会解决问题。

Note: 完成此操作后,不要忘记清除浏览器缓存,否则可能会从缓存中加载错误的版本。

SO网友:Adon Irani

我在最新的Wordpress 5.0.1上遇到了同样的问题,但仅在/wp admin/*上遇到了同样的问题。主站点渲染得很好。

我发现将“CONCATENATE\\u SCRIPTS”定义为false也可以解决这个问题,这意味着缩小的脚本实际上是可以的。

也没有看到任何权限问题。尝试研究在连接脚本时到底发生了什么--

结束