【发布时间】:2020-10-27 16:37:38
【问题描述】:
我的 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 中的项目结构:
|-- 垃圾箱
|-- 缓存
|-- laravel (没有公用文件夹的项目文件)
|-- 应用
|-- 引导
|-- 配置
.env
server.php
...以及其余文件
|-- 等
|-- 日志
|-- 邮件
|-- public_html
|-- CSS
|-- js
|-- 图片
.htaccess
index.php
...其余文件
我在 public_html 中的 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>
【问题讨论】:
-
您可以发布您的 .htaccess 文件吗?
-
@alex hey Alex 我在问题中添加了 htaccess 文件
-
可能是您的静态文件未加载到错误的路径。你检查你的内容的路径吗?
-
@STA 在浏览器控制台中它显示路径正确mywebsitename.com/img/image.png 并且图像已经存在但当我单击时仍然显示 404 错误