🦄 2024 独立开发者训练营,一起创业!查看介绍 / 立即报名(剩余10个优惠名额) →

Drupal 8:本地开发调试

在本地开发 Drupal 8 网站,你需要做点特别的设置,比如不让 Drupal 合并网站使用的 CSS 与 JS  文件,禁用掉 Drupal 的缓存等等。不然你修改了某个地方想看到修改之后的结果,每次都得先去重建一下 Drupal 的缓存。

本地配置文件

为本地开发环境准备一个特别的配置文件,这个配置文件只在本地开发环境上存在,也就是你不需要把这个配置文件放到项目仓库里做版本控制。在这个本地配置文件里,去做一些特别的配置,这样这些配置就只会存在于本地开发环境上。

Drupal 默认的配置文件叫 settings.php,它会在网站目录的下面,比如 sites/default/settings.php,打开这个配置文件,然后查看下面这段代码:

# if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
#   include $app_root . '/' . $site_path . '/settings.local.php';
# }

去掉代码前面的注释符号,让它生效:

if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
  include $app_root . '/' . $site_path . '/settings.local.php';
}

意思就是,如果网站目录下面的存在 settings.local.php 文件,就把它载入进来。这个文件 Drupal 已经准备好了一个参考示例,位置是在 sites/example.settings.local.php,复制一份这个文件,把它放在 sites/default/settings.local.php

打开我们新复制的文件:sites/default/settings.local.php,在这个文件里做的配置只会影响到本地开发环境,因为这个文件不会存在于网站的生产环境,你需要在项目的版本控制里去掉这个文件。

下面是这个本地的配置文件里包含的配置,比如:

/**
 * Disable CSS and JS aggregation.
 */
$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;

上面的配置已经存在于 settings.local.php 文件里了,功能就是关掉网站的合并 CSS 与 JS 的功能。

还有几处缓存的设置,可以取消配置代码的注释,让这些配置生效:

$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';

意思就是不使用缓存。

本地开发服务

再查看一下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/local.services.yml';

复制一份 sites/development.services.yml,放在 sites/local.services.yml,这样做的原因是,Drupal 原本的 sites/development.services.yml 文件在升级 Drupal 核心以后可能会被覆盖掉。

打开 sites/local.services.yml,用下面内容替换掉文件里的内容:

parameters:
  http.response.debug_cacheability_headers: true
  twig.config:
    debug: true
    cache: false
services:
  cache.backend.null:
    class: Drupal\Core\Cache\NullBackendFactory

注意 twig.config,我们把 debug 设置成了 true,意思就是打开 twig 的调试功能,把 cache 设置成了 false,意思就是去掉 twig 的缓存功能。这样你在用浏览器审查 Drupal 页面元素的时候,会看到输出的内容是由哪个 twig 模板文件控制的,还会显示建议使用的模板文件的名字是什么。

Drupal
微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点