Answers:
在开发站点上,我建议取消注释文件中的以下行settings.php
。 emacs sites/default/settings.php
if (file_exists(__DIR__ . '/settings.local.php')) {
include __DIR__ . '/settings.local.php';
}
然后将文件example.settings.local.php
从/sites
文件夹复制到文件/sites/default
夹并将其重命名为settings.local.php
cp sites/example.settings.local.php sites/default/settings.local.php
除了添加以下设置
$config['system.logging']['error_level'] = 'verbose';
它还添加了一些其他设置,这些设置将帮助您调试并简化开发。如果您不想特别使用它们,可以随时将它们注释掉。
注意:如果您认为向file_exists
每个页面添加呼叫会降低站点速度,则可以始终在生产代码中将其删除。
在settings.php文件中添加以下行。
$config['system.logging']['error_level'] = 'verbose';
有关更多详细信息,请参见使D8的开发人员技巧/工具更容易发现/明显。
这是具有不同值的变量:
$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose
要获得Drupal 8中的基本错误消息,您根本不需要触摸任何代码。只需转到:
/ admin / config / development / logging
并将“显示的错误消息”设置为适当的级别。
您还可以通过管理界面查看最近的错误:
/ admin / reports / dblog
就是说,其他有关设置文件的答案也很重要-您仅应使错误在开发站点上可见,而不在生产站点上可见。
导出时,settings.php中覆盖的$ config对象/键不会写入同步目录,因此,如果您的settings.php位于.gitignore中,则可以继续安全地使用配置系统在同一站点的克隆之间进行同步。
如果您只能访问Drush(没有Drupal控制台)并且在远程服务器上工作,则可以将配置设置为显示所有错误:
提取MYSITE.MYENV配置集system.logging error_level all -y
如果您在远程服务器上获取WSOD,并且如果没有更多信息就无法进行故障排除,则此功能很有用。
drush sqlc
紧随其后SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1
显示dblog中的最后一个条目。
空白页为“网站遇到错误。请稍后重试。” 不会带你到任何地方。要从Drupal 8网站获得更多信息,您可以启用以下配置。
$config['system.logging']['error_level'] = 'verbose';
对于本地Drupal 8开发,您还应该启用错误报告,显示错误和显示启动错误,以帮助您进一步调试和修复主要的运行时错误。
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
您可以在下面的博客文章中找到有关TWIG调试和使用Drupal Console启用调试的更多信息。
https://www.drupixels.com/blog/enable-debug-mode-and-error-reporting-local-development-drupal-8
<?php $config[...;