我想在Cpanel上的共享主机上部署应用程序,其中主文档根目录为public_html,但Laravel项目为public
public_html
public
dnph8jn41#
1.编辑\App\Providers\AppServiceProvider register()方法并添加此代码。
\App\Providers\AppServiceProvider
// set the public path to this directory $this->app->bind('path.public', function() { return base_path().'/public_html'; });
1.打开server.php,您可以看到以下代码
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服务您的应用程序,您也可以将其部署在Cpanel共享主机上,其中主文档根public_html
php artisan serve
wixjitnu2#
你可以将你的公共目录rename到你想要的任何地方,并告诉Laravel使用当前的目录路径作为公共路径,只需导航到public文件夹中的index.php(或者你将它重命名为的任何地方),并在$app定义之后添加以下代码:
rename
index.php
$app
$app = require_once __DIR__.'/../bootstrap/app.php'; /* *** Add this code: *** */ $app->bind('path.public', function() { return __DIR__; }); /* ********************** */
agyaoht73#
在那里,idk如果你有同样的问题像我一样,我的情况是我使用共享主机,我部署在我的主域.我把我所有的文件在根,我的问题是存储:公共之间的链接保持,而不是public_html(因为它的默认主机)所以我需要做的是我使用以下代码改变链接:之前:
'links' => [ public_path('storage') => storage_path('app/public'), ],
之后:
'links' => [ app()->basePath('public_html/storage') => storage_path('app/public'), ],
我希望它能帮助很少的人:)
llew8vvj4#
只需将“public”文件夹重命名为“public_html”,它就可以工作了。不需要对代码进行任何更改。在Laravel 8中测试。
ccrfmcuu5#
我的两分钱:)对我有帮助的是:打开LaravelService/vendor/laravel/framework/src/Illuminate/Foundation/Application.php并更改publicPath()方法以返回public_html。
LaravelService/vendor/laravel/framework/src/Illuminate/Foundation/Application.php
public function publicPath() { return $this->basePath.DIRECTORY_SEPARATOR.'public_html'; }
然后,如果您使用webpack,还应更改输出文件夹:
const output = 'public_html'; mix.ts('resources/js/web/App.ts', output + '/js/web').setPublicPath(output).react();
这对我很有帮助。唯一的问题是,它可能不建议改变Application.php,因为它是Laravel框架的一部分,更新后,它可能会被删除,所以你必须把它放回去。
5条答案
按热度按时间dnph8jn41#
您必须按照2个步骤将应用程序的公共文件夹更改为public_html,然后才能部署它或执行任何操作:)
1.编辑
\App\Providers\AppServiceProvider
register()方法并添加此代码。1.打开
server.php
,您可以看到以下代码只需将其替换为:
然后用
php artisan serve
服务您的应用程序,您也可以将其部署在Cpanel共享主机上,其中主文档根public_htmlwixjitnu2#
你可以将你的公共目录
rename
到你想要的任何地方,并告诉Laravel使用当前的目录路径作为公共路径,只需导航到public
文件夹中的index.php
(或者你将它重命名为的任何地方),并在$app
定义之后添加以下代码:agyaoht73#
在那里,idk如果你有同样的问题像我一样,我的情况是我使用共享主机,我部署在我的主域.我把我所有的文件在根,我的问题是存储:公共之间的链接保持,而不是public_html(因为它的默认主机)所以我需要做的是我使用以下代码改变链接:
之前:
之后:
我希望它能帮助很少的人:)
llew8vvj4#
只需将“public”文件夹重命名为“public_html”,它就可以工作了。不需要对代码进行任何更改。在Laravel 8中测试。
ccrfmcuu5#
我的两分钱:)对我有帮助的是:
打开
LaravelService/vendor/laravel/framework/src/Illuminate/Foundation/Application.php
并更改publicPath()方法以返回public_html。然后,如果您使用webpack,还应更改输出文件夹:
这对我很有帮助。唯一的问题是,它可能不建议改变Application.php,因为它是Laravel框架的一部分,更新后,它可能会被删除,所以你必须把它放回去。