Laravel 路由在生产服务器 404 错误上不起作用

Mar*_*rco 6 php laravel server

我有一个 laravel 项目,它在本地机器上运行良好,我在 homestead 上设置了它,但是当我在 namecheap 上将项目上传到生产服务器时,没有任何链接或路线工作,我只得到索引页打开时没有样式,如果我点击任何链接,我会收到 500 错误。我已按照此处建议的步骤操作:

所以,我的 Laravel 项目目录与 public_html 处于同一级别,以及我的 Laravel 项目的公共目录。它们都在同一目录级别。我改变了index.php文件中的路径:

require __DIR__.'/mariva/bootstrap/autoload.php';
$app = require_once __DIR__.'/mariva/bootstrap/app.php';
Run Code Online (Sandbox Code Playgroud)

然后,我更改了 laravel 项目目录中的 server.php:

require_once __DIR__.'../public_html/index.php';
Run Code Online (Sandbox Code Playgroud)

权限显然是由 namecheap 客户服务设置的,但是我的所有 css 和 js 文件以及单击页面上的某些 html 链接时仍然出现 404 错误。

在视图文件中,我像这样调用我的 css 文件:

<!-- CSS Files -->
  <link href="{{ asset('css/material-kit/css/bootstrap.min.css') }}" rel="stylesheet" />
  <link href="{{ asset('css/material-kit/css/material-kit.css') }}" rel="stylesheet"/>
  <link href="{{ asset('css/landing-page.css') }}" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)

和js文件一样:

<!--   Core JS Files   -->
<script src="{{ asset('js/landing-page/jquery.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('js/landing-page/bootstrap.min.js') }}" type="text/javascript"></script>
<script src="{{ asset('js/landing-page/material.min.js') }}"></script>

<!-- Control Center for Material Kit: activating the ripples, parallax effects, scripts from the example pages etc -->
<script src="{{ asset('js/landing-page/material-kit.js') }}" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

不知道我该如何解决?

更新

我已经设法解决了不打开文件的 css 和 js 问题,我错误地将文件移动到了错误的目录。但是我仍然无法在页面上获取任何链接以工作?

在我看来,我有这样的链接:

<a href="{{ url('/login') }}">Login</a>
Run Code Online (Sandbox Code Playgroud)

当点击它们时,我得到404错误。

KuK*_*KeC 0

您需要在共享托管中设置 Laravel 项目,这在此处得到了很好的解释。

成功完成所有 7 个步骤后,您的项目应该可以在服务器上正常运行。

还将其添加到您的.htacces文件中public_html

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^ index.php [L]
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你