【问题标题】:How does 'CONCATENATE_SCRIPTS' work on wp-config?'CONCATENATE_SCRIPTS' 如何在 wp-config 上工作?
【发布时间】:2015-09-15 14:29:08
【问题描述】:

我的 wordpress 文本编辑器上的文本是白色背景上的白色,所以它对大多数人来说是不可见的..

我搜索了一下,找到的解决方法是在wp-config.php中加入如下代码

define('CONCATENATE_SCRIPTS', false );

它运行良好,但我找不到它的作用或它的工作原理。

我只发现了一个问同样问题的问题here,但没有得到答案。

有人能解释一下上面的代码的作用以及它的工作原理吗?

【问题讨论】:

  • 你使用 TinyMCE 的插件吗?
  • 这真是一个奇怪的问题。似乎它与某些 JS 有关 - 有时某些脚本不支持被缩小(例如,如果它错过了一些分号)。您的浏览器控制台是否对此有任何说明?
  • 控制台什么也没说。
  • 似乎wp_styles 也使用CONCATENATE_SCRIPTS 来知道它是否应该连接样式。因此,如果 concat 打开时您的控制台中没有任何错误消息,我认为这应该是一些 css 缩小问题。如果您在 admin 中查看源代码,您会在 head 标记中找到对 load-styles.php 的一些引用。您能否将这两行粘贴到您的问题中?
  • 我也遇到过类似的问题。 1) 当我访问主题自定义页面时,我的 wordpress 网站返回“加载资源失败:服务器响应状态为 403”。 2)有时我的浏览器在我批量删除或编辑产品时直接从服务器打开403 Forbidden页面。当我将 define('CONCATENATE_SCRIPTS', false); 行添加到 wp-config 文件时,问题 1 已解决,但此解决方案无法解决我的第二个问题。问题 1 仅在我将 wordpress 站点移动到新服务器后发生。我坚持要知道是什么导致了这个问题,所以我在我的 wp-config 中禁用了新添加的行。

标签: wordpress


【解决方案1】:

首先,好问题。

CONCATENATE_SCRIPTS 是告诉 wordpress 的常量,嗯.. 将所有依赖项连接到一个 URL 并一起加载(我猜是为了保存 http 请求)。

据我所知,它仅适用于管理区域(后端)。 结果是一个类似

的 url
<script src="http://somewordpress.site/wp-admin/load-scripts.php?c=1&load=jquery-ui-core,jquery-ui-widget,jquery-ui-mouse,jquery-ui-sortable,hoverIntent,common,jquery-color,wp-ajax-response,wp-lists,jquery-ui-resizable,quicktags,jquery-query,admin-comments,postbox,dashboard,thickbox,plugin-install,media-upload&ver=e0f647a6df61adcc7200ce17a647db7f" type="text/javascript">

这是正常的默认行为,如果您遇到问题,可能是因为主题或插件中的一些javascript冲突。

另一种可能(尽管频率较低)是由于 TinyMCE 缓存导致的浏览器问题。清除浏览器缓存。 (编辑:对Sep.2015 是真实的 - 此后未验证但仍然值得尝试)

如果你真的想看看它是在哪里定义的或者它在做什么,你可以look here

无论如何,通过将常量定义为false,您实际上是在强制 WordPress单独 加载管理页面上的每个脚本,而不是 集体。 所以在这种情况下 - 如果一个脚本无法加载和正常工作,其他脚本仍然可以继续正常运行。

这是debugging 和本地开发的推荐设置。 但是,在您的情况下,这是问题的症状,而不是问题本身。您应该隔离问题并修复它(可能是之前所说的插件)

【讨论】:

  • 太棒了!我会看看我找到了什么..谢谢!
  • 在依赖脚本可以并行加载之前,连接是一种特别有价值的技术,因为一个脚本必须等待下一个脚本才能下载。这种滞后是 2017 年的 becoming less of an issue,根据您加载脚本的方式,连接实际上可能会减慢您的网站速度。让你知道。
【解决方案2】:

为了扩展 Obmerk 的答案,在我的例子中,将 CONCATENATE_SCRIPTS 设置为 false 只是让我能够在浏览器控制台中看到个别故障,因为它随后显示 tinymce 的 javascript 没有正确加载。然后查看服务器日志显示wp-tinymce.php 没有正确执行。最后,我需要修复{sitepath}/wp-includes/js/tinymce/wp-tinymce.php 的权限,以便我所在服务器的安全设置允许它运行。

在我的情况下,服务器不允许它是组可写的,所以 chmod 755 负责处理它。实际解决方案将根据您的服务器配置而有所不同。

【讨论】:

  • 有趣...为什么将 PHP 脚本设置为 755(包括直接从 shell 运行它的能力)而不是 644?
  • @GwynethLlewelyn 只是我的懒惰/无知。
猜你喜欢
  • 2018-04-14
  • 1970-01-01
  • 2014-02-20
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-27
相关资源
最近更新 更多