Laravel .blade视图无法加载

3

我正在尝试学习Laravel,但很快就遇到了问题,似乎找不到解决办法。我的routes.php文件如下:

<?php

Route::get('/', 'PagesController@welcome');
Route::get('about', 'PagesController@about');

PagesController.php看起来像这样

<?php namespace App\Http\Controllers;

    use App\Http\Requests;
    use App\Http\Controllers\Controller;

    use Illuminate\Http\Request;

    class PagesController extends Controller {

        public function welcome(){
            return view('welcome');
        }

        public function about() {
            $name = 'My name';

            return view('about')->with('name', $name);  
        }

    }

最后,about.blade.php看起来像这样:
<html>
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>

        <h1>About Me: {{ $name }}</h1>

        <p>
            Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
        tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
        quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
        consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
        cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
        proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

        </p>
    </body>
</html>

当我尝试加载about.blade.php时,我的网络浏览器没有显示任何内容,查看页面源代码发现没有html。但是,当我将about.blade.php重命名为about.php时,文件可以正常加载,但{{ $name }}部分未被blade呈现。我特别困惑的原因是,只是新的laravel项目的默认欢迎视图welcome.blade.php以及其中的blade格式都可以正常加载。

视图文件在'app/views'文件夹中吗? - Kenmore
@Zuko,它在“resources/views”中,我认为这对于laravel 5是正确的。 - Pastramifest
你的存储目录可写吗?如果你遇到了空白屏幕,很可能是权限出了问题,因此无法将任何内容写入storage/framework/views目录。 - kajetons
打开所有错误报告。 - itachi
啊,5已经有很多变化了。我不是最新的资讯。 - Kenmore
谢谢你。我已经打开了它,现在它显示在 'vendor/compiled.php' 中有一个未捕获的 'UnexpectedValueException',但我不知道是什么原因导致的。 - Pastramifest
3个回答

0

试一下...

from

return view('welcome');

to
  return View::make('welcome');

AND 

From

 return view('about')->with('name', $name); 

to

 return View::make('about')->with('name', $name); 

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Pastramifest
1
这并不能解决任何问题,因为view()View::make()都在幕后解析为Illuminate\View\Factory::make() - kajetons

0
我曾经遇到过同样的问题,也是在about.blade.php文件中。当我将文件名改为abou.blade.php(去掉't')时,一切都按预期工作了。我尝试了几次(使用其他单词如ab.blade.php、abouts.blade.php等),我无法相信问题是文件命名(但确实是)。经过更多测试后,我发现问题确实是文件权限。
我在Ubuntu上工作,发现我的/var/www/html文件夹的权限被重置了,所以我需要再次执行“chmod -R 777 /var/www/html/”。

你所做的是给所有人完全的权限。这绝对不是解决方案。 - ImAtWar
你是对的,这不是正确的方法,但是这是在本地机器上完成的(而不是在实时服务器上)。我只是想指出这是一个权限问题... - anchor

0

尝试使用 return redirect('about')->with('name', $name);


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