Laravel 5 视图未找到。

6

我在Laravel 5中遇到了最奇怪的错误,而且在我的其他项目中从未出现过。

问题

当我尝试访问我的应用程序时,我收到以下错误:

No such file or directory (View: /home/vagrant/Code/resources/views/layout/master.blade.php) (View: /home/vagrant/Code/resources/views/layout/master.blade.php)

然而,在我的目录结构中:

it definitely exists!

并且在我的Blade模板中:

@extends('layout.master')

@section('content')
jfoewifjewo[ij
@endsection

在我的控制器中

public function index()
    {
        return view('home');
    }

有其他人遇到过这个问题吗?我以前从未遇到过。是的,存储在本地和Homestead上都具有读/写权限。

更新:我使用的是Laravel 5.0.13


如果你改变文件名并将扩展名指向新名称,你得到的还是一样的吗? - Leandro Papasidero
@LeaTano 嗯,完全相同的问题。 - Zarathuztra
我认为这是一个众所周知的问题,请查看此文章:https://laracasts.com/discuss/channels/general-discussion/laravel-5-error-out-of-the-box-with-update-route-throws-an-error 并搜索“PratyushPundir”。他也遇到了同样的问题,其他人之后也报告了它。 - Leandro Papasidero
顺便提一下,@endsection自Laravel 4版本以来已弃用。您应该使用@stop代替。 - Bernig
那个问题已经被讨论并解决了。 - Zarathuztra
显示剩余2条评论
3个回答

4
这个问题与在homestead中使用Laravel Elixir有关。我回到MAMP看是否出现相同的错误,结果告诉我public/build下缺少rev-manifest.json文件。经过一番调查,发现如果你没有将“versions”函数应用于gulpfile中的elixir函数,构建文件夹就不会生成,在blade模板中调用“elixir”函数也会失败。这似乎会导致在找不到视图依赖项时,错误冒泡为找不到视图。
确保使用gulp来构建您的sass或less文件,但在elixir的所有问题得到解决之前,建议仅使用URL::asset()来生成您的javascript和css文件路径。

3

我觉得这个答案肯定会帮助到不只是我自己的人。点赞! - Zarathuztra

0

我通过添加版本号来解决这个问题。因为在gulp中添加版本后,它会生成rev-mainfest.json。

原始的gulp在Homestead中。

elixir(function(mix) {
    mix.sass('app.scss');
});

我改成

elixir(function(mix) {
    mix.sass('app.scss')
        .version(["public/css/app.css"]);
});

它有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接