为什么找不到我的 Drupal 8 模块显示页面?
Why is my Drupal 8 module show Page not found?
我正在学习 Modules, Routes and Controllers 教程。然而,不管 "Clear all cache".
我一直得到 "Page not found"
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/ 我收到找不到页面的错误。非常感谢任何建议。
下面是我的文件夹结构:
这就是我折叠 src 文件夹时的样子。
主模块信息 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
从 Drupal.org 的 Shashwat Purav 那里得到了一些帮助。下面是我已经更改为有效的路由文件。
dino_roar.dino_says:
path: /dino/says
defaults:
_controller: '\Drupal\dino_roar\Controller\RoarController::roar'
requirements:
_permission: 'access content'
我认为是因为你原来的路由问题,
您应该将 "path: /the/dino/says/" 更改为 "path: /the/dino/says"
删除最后一个斜杠后,应该没问题。
我正在学习 Modules, Routes and Controllers 教程。然而,不管 "Clear all cache".
我一直得到 "Page not found"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/ 我收到找不到页面的错误。非常感谢任何建议。
下面是我的文件夹结构:
这就是我折叠 src 文件夹时的样子。
主模块信息 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
从 Drupal.org 的 Shashwat Purav 那里得到了一些帮助。下面是我已经更改为有效的路由文件。
dino_roar.dino_says:
path: /dino/says
defaults:
_controller: '\Drupal\dino_roar\Controller\RoarController::roar'
requirements:
_permission: 'access content'
我认为是因为你原来的路由问题, 您应该将 "path: /the/dino/says/" 更改为 "path: /the/dino/says"
删除最后一个斜杠后,应该没问题。