一、设置文件权限
由于我们在开发中会需要修改web/sites/下面的一些文件,默认情况下这里面的文件不允许被修改,所以需要给这里面的文件设置权限,以便在开发过程中可以对文件进行修改。
进入web目录:cd web,执行以下命令:
$ chmod -R u+w sites
$ chmod -Rf 775 sites/default二、开启并创建settings.local.php文件
1、开启并创建settings.local.php文件
在web/sites/default下找到settings.php文件,在文件中搜索“local.”,找到如下三行代码,并将每行代码前的注释符去掉。

修改后:
if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
include $app_root . '/' . $site_path . '/settings.local.php';
}这样做的原因是,由于这个文件包含了各种参数,而开发团队中不同角色的人所需要用到的参数值往往不一样。所以大家应该各自使用自己的settings.local.php文件。
比如,作为主题开发者,我们需要关闭网站JS和CSS的聚合功能,这样才能在开发的过程中找到我们需要的文件。因为,如果JS或者CSS文件被聚合了,系统就会用多个文件去生成一个大的文件,drupal用这种方式来减少http的请求数量,并以此来加快网站的打开速度。但是我们在开发主题的时候,就不能使用这个功能。
所以我们需要建立一个只在我们自己本地起作用的settings.php文件。这个文件在上传和共享代码的时候,可以被忽略。这就保证了我们对这个本地文件的设置,不会影响到其他人。
Drupal的开发者已经为我们考虑到了这个需求,因此他们在sites文件夹中为我们准备了一个example.settings.local.php文件,我们需要做的是,拷贝这个文件并放置在sites/default目录下(注意路径,是放到default文件夹中),并把文件名改成settings.local.php。

2、验证配置文件是否生效
在settings.local.php配置文件里面有如下两个配置项:

这两个配置项的作用是设置js和css是否聚合,默认值为FALSE,此时页面加载的css和js是非聚合的:

将以上配置项改的值改为TRUE后,js和css都聚合了:

三、添加services并开启twig debug模式
1、修改配置
在settings.local.php中找到如下这行代码:
/**
* Enable local development services.
*/
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';将其改为:
/**
* Enable local development services.
*/
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/default/local.services.yml';这样做的意义和作用,类似之前我们创建settings.local.php文件。是为了让你创建一个自己独立的工作环境,而不受其他人的影响,也不会影响其他人。所以,同样的,这个文件在用git提交的时候应该被忽略。
2、准备services文件并开发twig debug
在web/sites/default下创建一个名为“local.services.yml”的文件,并粘贴如下代码:
#关闭缓存
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
parameters:
twig.config:
debug: true #开启twig debug模式
auto_reload: true #自动刷新,当值为true时,一旦源代码被修改,就会自动重新编译twig模板
cache: false #关闭缓存清空缓存后打开代码审查可以看到多了一些注释代码,这就说明twig debug服务已经开启了。

四、关闭缓存,检查网站是否出错
在settings.local.php文件中找到如下两行代码(以drupal11为例,这两行代码分别在65行和96行):
$settings['cache']['bins']['render'] = 'cache.backend.null';
#和
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';将这两行代码前面的“#”去掉(取消注释)。然后切换到浏览器,刷新首页,如果这个时候首页能够正常打开,就可以了。
需要注意的是,为了正确的加载service,比如 twig debug 和禁用缓存,我们先创建了local.services.yml文件,并且在文件中将cache设置为false,然后第一次清空了缓存。接着,我们又回到settings.local.php文件中开启第65行和96行的代码,并第二次清空了缓存。这里的操作顺序是非常重要的。最好按照这个步骤来操作,不然最后刷新首页的时候会发生错误,整个网站就挂了。