如何将 public 文件夹更改为 laravel 8 中的 public_html?
How to change public folder to public_html in laravel 8?
我想在 Cpanel 上的共享主机上部署我的应用程序,其中主要文档根目录有 public_html
但 Laravel 项目 public
您必须按照 2 个步骤将应用程序的 public 文件夹更改为 public_html,然后您可以部署它或执行任何操作:)
编辑 \App\Providers\AppServiceProvider
register() 方法并添加此代码。
// set the public path to this directory
$this->app->bind('path.public', function() {
return base_path().'/public_html';
});
打开server.php
可以看到这段代码
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
return false;
}
require_once __DIR__.'/public/index.php';
只需将其替换为:
if ($uri !== '/' && file_exists(__DIR__.'/public_html'.$uri)) {
return false;
}
require_once __DIR__.'/public_html/index.php';
然后使用 php artisan serve
为您的应用程序提供服务,您也可以将其部署在主文档根 public_html
所在的 Cpanel 共享主机上
您可以 rename
您的 public 目录到任何您想要的目录,并告诉 Laravel 使用当前目录路径作为 public 路径。只需导航到 public
文件夹内的 index.php
(或您将其重命名为的任何名称)并在 $app
定义之后添加以下代码:
$app = require_once __DIR__.'/../bootstrap/app.php';
/* *** Add this code: *** */
$app->bind('path.public', function() {
return __DIR__;
});
/* ********************** */
只需将“public”文件夹重命名为“public_html”即可。
代码中不需要更改。在 Laravel 8.
中测试
好了,idk 如果你和我有同样的问题,我的情况是我使用共享主机,我将它部署在我的主域中。我把我所有的文件都放在根目录下,我的问题是 storage:link 保持在 public 之间,而不是 public_html (因为它是托管的默认值)所以我需要做的是改变 link 使用此代码:
之前:
'links' => [
public_path('storage') => storage_path('app/public'),
],
之后:
'links' => [
app()->basePath('public_html/storage') => storage_path('app/public'),
],
希望能帮到少数人:)
我想在 Cpanel 上的共享主机上部署我的应用程序,其中主要文档根目录有 public_html
但 Laravel 项目 public
您必须按照 2 个步骤将应用程序的 public 文件夹更改为 public_html,然后您可以部署它或执行任何操作:)
编辑
\App\Providers\AppServiceProvider
register() 方法并添加此代码。// set the public path to this directory $this->app->bind('path.public', function() { return base_path().'/public_html'; });
打开
server.php
可以看到这段代码if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { return false; } require_once __DIR__.'/public/index.php';
只需将其替换为:
if ($uri !== '/' && file_exists(__DIR__.'/public_html'.$uri)) {
return false;
}
require_once __DIR__.'/public_html/index.php';
然后使用 php artisan serve
为您的应用程序提供服务,您也可以将其部署在主文档根 public_html
您可以 rename
您的 public 目录到任何您想要的目录,并告诉 Laravel 使用当前目录路径作为 public 路径。只需导航到 public
文件夹内的 index.php
(或您将其重命名为的任何名称)并在 $app
定义之后添加以下代码:
$app = require_once __DIR__.'/../bootstrap/app.php';
/* *** Add this code: *** */
$app->bind('path.public', function() {
return __DIR__;
});
/* ********************** */
只需将“public”文件夹重命名为“public_html”即可。 代码中不需要更改。在 Laravel 8.
中测试好了,idk 如果你和我有同样的问题,我的情况是我使用共享主机,我将它部署在我的主域中。我把我所有的文件都放在根目录下,我的问题是 storage:link 保持在 public 之间,而不是 public_html (因为它是托管的默认值)所以我需要做的是改变 link 使用此代码:
之前:
'links' => [
public_path('storage') => storage_path('app/public'),
],
之后:
'links' => [
app()->basePath('public_html/storage') => storage_path('app/public'),
],
希望能帮到少数人:)