Laravel中缺少公用文件夹

时间:2018-09-19 12:49:23

标签: laravel-5.6

我从客户那里收到了一个项目。我尝试使用php artisan serve命令将其安装在本地计算机中,但发现以下错误

enter image description here

在Google中搜索后,我发现了一个this问题。然后我发现我的项目目录中没有公用文件夹。

enter image description here

是否有特定原因删除此 public 文件夹?还是不小心遗失了?

我改变了

chdir($this->laravel->publicPath());

在vendor / laravel / framework / src / Illuminate / Foundation / Console / ServeCommand.php中至:

chdir('/');

按照this问题进行。之后,在使用php artisan serve运行项目时,我得到了一张空白的页面。

解决方案是什么?

2 个答案:

答案 0 :(得分:2)

由于缺乏经验,大多数新开发人员正在使用此方法在真实服务器中隐藏公用文件夹。我建议您将主文件夹从'/'重新编辑为“公共”

首先,查看您的index.php文件并替换

$app = require_once 'bootstrap/app.php';

$app = require_once __DIR__.'/../bootstrap/app.php';

2)更改require 'vendor/autoload.php';

require __DIR__.'/../vendor/autoload.php';

3)创建一个新的公用文件夹,并将您的资产文件 index.php 放在此处。

执行这些步骤后,您可以尝试php artisan config:clear

别忘了主要目的是找回 public 文件夹。

答案 1 :(得分:1)

他们可能试图将应用设置为从根目录而不是公用文件夹运行。通常会在将Laravel应用设置为在共享主机上运行(我可能会错误地添加)时发生。

创建一个新的公共目录,并将您的js,css和index.php文件移回其中。还要检查是否有任何从根目录引用index.php的显式路径,并对其进行更新,以便它们指向公共目录。您还必须在公共目录中创建一个新的htaccess文件(或从根目录移动现有的htaccess文件)。

只需与干净的laravel安装的dir结构进行比较,您就可以看到丢失的内容。