Nes*_*k27 3 php linux apache laravel
我在Windows和基于Linux的服务器上有一个Web服务器.当我在Windows上启动Laravel 5项目时,一切正常,但我在Linux(ubuntu)服务器上遇到了麻烦,我的托管也遇到了同样的麻烦.当我尝试加载索引页面时,我收到如下错误:
找不到"App\Helpers\Substr"类
之所以发生这种情况,是因为我在我的刀片模板中使用了自定义帮助程序,并通过"use"运算符加载它,如下所示:
<?php
use App\Helpers\Substr;
use App\Helpers\LoaderBtn;
?>
@extends('zaks.public')
@section('content')
@include('zaks.search')
Run Code Online (Sandbox Code Playgroud)
那么,在项目完成后,在这种情况下可能是一个很好的解决方案?
Pau*_*ich 11
首先,确保您的类通过Composer左右自动加载.
然后,您可以将命名空间类添加到'aliases'数组中config/app.php,如下所示:
'aliases' => array(
// other aliases...
'App_Helper_Substr' => 'App\Helpers\Substr',
);
Run Code Online (Sandbox Code Playgroud)
然后以常规方式在您的视图中使用它:
App_Helper_Substr->something...
App_Helper_Substr::something();
Run Code Online (Sandbox Code Playgroud)
您可以根据需要为别名命名.
我猜问题是 Windows 机器上的文件系统不区分大小写。因此,当您尝试加载类似 的类时App\Helpers\Substr,虽然您的实际意思是App\Helpers\SubStr,或者在情况下(PSR-4)文件路径与类名不完全对应,您的类仍将在 Windows 上加载。
然而,Linux 就不那么宽容了,并且有一个区分大小写的文件系统(至少我的 dev Ubuntu 版本是这样,但我猜这是 Linux 的默认设置)。
因此,要解决此问题,您应该做的是追踪您的“案例拼写错误”并修复它。
为了防止这些问题,并在犯错误时立即捕获它们,我强烈建议仅在区分大小写的文件系统上进行开发。我知道你可以在 mac 上创建区分大小写的分区,所以我猜想 Windows 上也可以做类似的事情。或者,您可以在开发时在像homestead这样的 Linux VM 中工作。我非常喜欢让您的开发环境尽可能接近生产环境。
| 归档时间: |
|
| 查看次数: |
3848 次 |
| 最近记录: |