Laravel 中缺少 public 文件夹

Missing public folder in Laravel

我收到了客户的一个项目。我尝试使用 php artisan serve 命令将它安装在我的本地机器上,但我发现了以下错误

在 Google 中搜索后,我找到了 this 问题。然后发现我的项目目录下没有public文件夹

删除此 public 文件夹有什么具体原因吗?还是不小心遗落了?

我改了

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

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

chdir('/');

根据 this 问题。之后,当我 运行 我的项目使用 php artisan serve 时,我得到一个空白页面。

解决方法是什么?

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

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

只需与干净的 laravel 安装的目录结构进行比较,您就可以看到缺少的内容。

大多数新开发者由于缺乏经验,都使用这种方法隐藏真实服务器中的public文件夹。我建议您将主文件夹从 '/'

编辑回 "public"

首先,查看您的 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) 创建一个新的 public 文件夹并将您的 资产文件 index.php 放在那里。

您可以在完成这些步骤后尝试 php artisan config:clear

不要忘记主要目的是取回 public 文件夹。