【问题标题】:Laravel page not found未找到 Laravel 页面
【发布时间】:2018-08-13 04:00:59
【问题描述】:

当我使用 server.php 文件打开站点时,会显示我的索引页面 (index.blade.php),并且该页面上指向列表页面 (list.blade.php) 的链接成功打开。当我通过 server.php 访问时,我遇到了识别我的 javascript 文件的问题?但是,如果我打开公用文件夹,它会将我放在我的索引页面上,并且可以识别 javascript 文件......

当我打开公用文件夹并单击列表链接时,我收到“抱歉,找不到您要查找的页面。”

web.php

Route::get('/', function () {return view('index');});

Route::get('list', 'IngredientsController@display');

配料控制器

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Ingredient;

class IngredientsController extends Controller
{
    /* Displays list of ingredients in db */
    public function display()
    {
        $ingredients = Ingredient::all();
        return view('list', compact('ingredients'));
    }

}

成分.php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Ingredient extends Model
{

}

索引页链接到列表页:<a href="{{ url('list') }}">List url</a>

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>

【问题讨论】:

  • 您上面的代码与您的问题并不真正相关。
  • 你不应该去domain.com/public/somethingelse它应该只是domain.com/somethingelse检查你的.htaccess文件。
  • 不知道为什么代码不相关抱歉。我想是因为我不知道如何解决这个问题,所以我向您提供了我所知道的。我在 uni 服务器上。它类似于 domain.com/me/project/projectdirectory ,在这里我看到目录中的所有文件。它不只是打开索引。
  • 你启用了mod_rewrite
  • 我添加了 htaccess 文件,但我承认我对此并不了解,所以我现在会研究一下。谢谢。

标签: laravel


【解决方案1】:

Laravel 不使用根目录来包含文件。所以是的,你的 IDEA 看到你的文件包含正确,但 laravel 没有。

看到这个帖子的答案: https://stackoverflow.com/a/28915577/5334073

Laravel 使用 public 文件夹作为“根”文件夹。这就是 Laravel 的工作原理。要调用该根,您应该使用 URL::assets 函数来解释我给您的帖子中的答案。

【讨论】:

  • 我已经这样做了:&lt;script type="text/javascript" src="{{ URL::asset('js/jquery.min.js') }}"&gt;&lt;/script&gt;.
【解决方案2】:

RewriteEngine On以上我放Options +FollowSymLinks以上RewriteRule ^ index.php [L]我加RewriteBase /nameoflaravelproject/public/

我添加了这两行代码,它可以工作。抱歉,我不太明白这一点,所以如果有人可以解释为其他用户提供更好的资源,那就太好了。

【讨论】:

    猜你喜欢
    • 2021-12-01
    • 2016-06-22
    • 2020-04-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多