laravel public_html文件无法在共享托管中加载

时间:2020-07-07 12:08:29

标签: php laravel cpanel

我的laravel(v5.8)项目在localhost上运行正常,但是在将其上传到cPanel后,公共html中的所有图像以及CSS和JS文件均无法在浏览器中加载,并在浏览器控制台中显示错误,例如:

“无法加载our-approach.png:1资源:服务器响应 状态404()“
”无法加载资源:main.css:1 服务器响应状态为500()”

虽然框架本身可以很好地加载并且没有显示任何错误。 我将PHP更新为7.4,并遵循了几乎所有的youtube和StackOverflow线程,但没有任何效果。

index.php已修改:

  require __DIR__.'/../laravel/vendor/autoload.php';

  $app = require_once __DIR__.'/../laravel/bootstrap/app.php';

AppServiceProvider.php已修改

public function register()
{

  $this -> app -> bind('path.public', function()
    {
    return base_path('public_html');
    });

}

我在cPanel中的项目结构:

|-bin
|-缓存
|- laravel (不含公用文件夹的项目文件)
|-应用
|-引导程序
|-配置
.env
server.php
...以及其他文件
|-等
|-日志
|-邮件
|- public_html
|-CSS
|-js
|-img
.htaccess
index.php
...其余文件

我在hthtml中的htaccess文件:

 <IfModule mod_rewrite.c>
   <IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
  </IfModule>

RewriteEngine On

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

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

2 个答案:

答案 0 :(得分:0)

您需要更改.htaccess文件。

添加这些行

Options -Indexes

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

但是请先备份,然后再更改htaccess文件

答案 1 :(得分:0)

显然问题出在文件许可权中,我将其设置为755(文件夹)和644(文件),一切工作都像魅力一样