我想将
public
文件夹移到我的 Laravel 项目之外
-->|-Project
| |___app
| |___bootstrap
| |___....
|-public
我移动了目录文件夹然后出现错误说
Symfony\Component\Process\Exception\RuntimeException
The provided cwd "C:\xampp\htdocs\site\ProjectNamexx\public" does not exist.
所以我创建了一个名为 public 的空文件夹,只是为了绕过错误;
在
bootstrap
目录中,我指定了该文件夹 public
,该文件夹现在通过此 dirname(getcwd(), 1)
成为父文件夹,旧代码是 dirname(__DIR__)
$app = new Illuminate\Foundation\Application(
$_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
);
$app->usePublicPath($app->basePath("public"));
但是发生了错误:
In RecursiveDirectoryIterator.php line 43:
RecursiveDirectoryIterator::__construct(): Argument #1 ($directory) cannot be empty
我尝试通过硬编码网址来解决它,但效果不佳,如果您已经遇到此问题,或者您知道如何解决此问题,我感谢您的帮助!
public/index.php
require __DIR__.'/../Project/vendor/autoload.php';
if (file_exists($maintenance = __DIR__.'/../Project/storage/framework/maintenance.php')) {
require $maintenance;
}
$app = require_once __DIR__.'/../Project/bootstrap/app.php';
bootstrap/app.php
。在 return $app 之前添加;$app->bind('path.public', function () {
return base_path() . '/../public';
});
Project/.htaccess
。如果您是虚拟主机<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
你可以试试这个
我假设
public_html
是您网站的根文件夹
在其中创建一个文件夹
project
& public
打开文件
public/index.php
并更改全部:
__DIR__.'/../
致:
__DIR__.'/../project/