为什么我的Drupal 8模块显示找不到页面?

时间:2016-04-06 16:51:13

标签: symfony drupal yaml drupal-8

我正在关注Modules, Routes and Controllers教程。但是,我一直没有找到" Page找不到"无论"清除所有缓存"。

dino_roar.info.yml文件:

name: Dino ROAR
type: module
description: "ROAR at you"
package: Custom
core: 8.x

dino_roar.routing.yml

dino_says:
  path: /the/dino/says/
  defaults:
    _controller: Drupal\dino_roar\Controller\RoarController::roar
  requirements:
    _permission: 'access content'

和src / Controller / RoarController.php文件:

<?php

namespace Drupal\dino_roar\Controller;
use Symfony\Component\HttpFoundation\Response;

class RoarController
{
    public function roar(){
        return new Response('ROOOOAR');
    }
}

访问时:http://drupal-8.dd:8083/the/dino/says/我收到页面未找到错误。任何建议都非常感谢。

以下是我的文件夹结构: enter image description here

这就是我折叠src文件夹时的样子。 enter image description here

3 个答案:

答案 0 :(得分:0)

主模块信息yml文件必须按以下方案命名:

module_name.info.yml

所以你的模块是dino_roar.info.yml。你还需要启用你的模块,但据我所知,当没有正确的命名信息yml文件时,Drupal甚至不知道你的模块。

还要确保您的文件夹结构正确无误:

dino_roar
  --> src
    --> Controller
           RoarController.php
  dino_roar.info.yml
  dino_roar.routing.yml

答案 1 :(得分:0)

在Drupal.org上得到Shashwat Purav的帮助。下面是我改为的路由文件。

dino_roar.dino_says:
    path: /dino/says
    defaults:
        _controller: '\Drupal\dino_roar\Controller\RoarController::roar'
    requirements:
        _permission: 'access content'

答案 2 :(得分:0)

我认为这是因为您的原始路由问题,  你应该改变&#34;路径:/ / / dino /说/&#34;到&#34;路径:/ / / dino /说&#34;

删除最后一个斜线后,应该没问题。