视图扩展功能中的 Codeigniter 4 未找到我的主视图

Codeigniter 4 in the view extend funcition not found me main view

我有问题白这句话:
codeigniter/app/view/autos.php


    ``` extend('front\layout\main') ?>```

在我的本地主机上工作,但是当更改到我的共享服务器 (cpanel) 时,不工作。
codeigniter/app/Controllers/Auto.php

```
  

      public function index()
        {
            helper('tiempo');
        
            $autoModel = new AutoModel($db);
            $autos = $autoModel->findAll();
            $autos = array('autos' => $autos);
            $estructura = view('front/autos', $autos);
            return $estructura;
        }
    ```
    

codeigniter/app/View/front/autos.php
```
    <?= $this->extend('front\layout\main') ?>
    <?= $this->section('title') ?>
    <?= $this->endSection() ?>
    <?= $this->section('content') ?>
```

codeigniter/app/View/front/layout/main.php
```  <head>
        <title>Tables - SB Admin</title>
        <title><?= $this->renderSection('title') ?></title>
    </head>
        <?= $this->include('front\layout\header') ?>
        <?= $this->renderSection('content') ?>
        <?= $this->include('front\layout\footer') ?>
    
        <?= $this->renderSection('js') ?>
        <script src="js/jquery-3.5.1.slim.min.js"></script>
        <script src="js/bootstrap.bundle.min.js"></script>
        <script src="js/scripts.js"></script>
        <script src="js/jquery.dataTables.min.js"></script>
        <script src="js/dataTables.bootstrap4.min.js"></script>
        <script src="assets/demo/datatables-demo.js"></script>
    </body>   ``` 

我是第一个post请放轻松

欢迎来到 SO Enzo。 首先,感谢您提供一切帮助解释您的问题并让我们回答...

因此,当您在 Windows 下开发然后在 Apache (Linux) 服务器上尝试相同的代码(您将其称为 Cpanel,它只是 Web 服务器控制面板)时,可能会发生这种情况).

在 Windows 下开发允许你做“事情”,因为它是 “放松”它会让你做什么。另一方面,Linux 不是,这是一件好事。

那么让我们来看看你的代码...在一个你用过的地方

$estructura = view('front/autos', $autos);

有效,您应该注意它使用 /(正斜杠)。

在报错的地方,错误信息中明确指出的是

 <?= $this->extend('front\layout\main') ?>

在这里玩“找不同”,您可能会问自己“为什么我的代码中斜线是单向的,而代码是斜线是反的? AND 在它显示错误的地方,斜线是 \ i.e.backslashes.

现在您 100% 知道该文件存在。所以这些词在路径中是正确的,但为什么斜杠(反斜杠)\ 在这里出错而 /(正斜杠)有效?

有线索了。

在 Linux 下,文件路径必须是 /(正斜杠)。 而 windows,使用 XAMPP 或 WAMP 等,将让您如您所见使用两者。

Windows 对于路径和文件名的大小写也很“宽松”。 Linux 不是,这是另一个需要注意的陷阱。

I.E 如果你有一个 /front/layout/main 的路径,你可以将其引用为 /Front/layout/MAIN 以及任何其他仅在 windows 中有效的大写和小写字符的组合。 在 Linux 下,它们必须完全匹配。

结论

路径名使用 \ (backslashes)

extend('front\layout\main') ?>

使用/ (Forward Slashes)

extend('front/layout/main') ?>

希望对您有所帮助。如果没有,请随时询问。