首页 > 解决方案 > laravel 部署到共享主机后看不到某些页面

问题描述

在共享主机中成功部署了我的 laravel 应用程序。好吧,我也可以在服务器中看到一些页面。但是在服务器上看不到某些页面,但是在本地主机上可以看到。

我已经尝试了许多可用的解决方案..但无法修复它。domain.com/admin/home 可以在服务器上查看。但是 domain.com/admin/postjob 在服务器上有 500 错误,但在本地主机上工作正常。

将laravel文件夹复制到root下,将laravel/public的内容复制到public_html/

让我们先检查路线。

//Admins Index Page
Route::get('/admin/home', 'admin\AdmhomeController@index')->name('admin.home');
//Job Posting by Admin - View
Route::get('/admin/postjob', 'JobsController@pjbyadm')->name('admin.postjob');

让我们看看控制器 - JobsController

//Post Job by Admin 
public function pjbyadm(Request $request){
$auth = Auth::guard('admin');
if ($auth->check()){
//return view('admin.CRjob_ajob'); tried this first
return \view('admin.CRjob_ajob');
}
else {
return redirect('/mikeadmin');
}

视图资源的文件夹结构 --> admin --> CRjob_ajob

public_html 文件夹中的 .htaccess 文件如下所示。

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php71” package as the default “PHP” programming language.
<IfModule mime_module>
  AddType application/x-httpd-ea-php71 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
Options +FollowSymLinks -Indexes
RewriteEngine On

RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

服务器php文件有

//require_once __DIR__.'/public/index.php';
require_once __DIR__.'../public_html/index.php';

使用 laravel 5.8 版本。

预计会看到页面 admin/postjob,该页面在本地主机中运行良好。

标签: laravel.htaccessrouteslaravel-5.8

解决方案


尝试php artisan cache:clear在上传到服务器之前运行,然后重新上传,或者另一种解决方案是将其添加到您的路线

Route::get('/clear-cache', function() {
    Artisan::call('cache:clear');
    return "Cache cleared";
});

然后调用 domain.com/clear-cache


推荐阅读