Laravel .blade 视图不会加载

Posted

技术标签:

【中文标题】Laravel .blade 视图不会加载【英文标题】:Laravel .blade view won't load 【发布时间】:2015-06-11 11:17:05 【问题描述】:

所以我一直在尝试学习 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 时,我的 Web 浏览器中没有显示任何内容,并且查看页面源代码显示那里没有 html。但是当我将 about.blade.php 重命名为 about.php 时,文件会加载,除了 $name 部分没有像它应该的那样被刀片渲染。我特别困惑的原因是因为welcome.blade.php,它只是一个新的laravel项目的默认欢迎视图,加载得很好,其中的刀片格式也是如此。

【问题讨论】:

视图是否在“app/views”文件夹中? @Zuko 它在“资源/视图”中,我认为这对于 laravel 5 是正确的。 你的存储目录是可写的吗?如果您出现空白屏幕,则很可能是权限有问题,因此无法将任何内容写入storage/framework/views 目录。 开启所有error reporting 啊,5 的变化太大了。我不是最新的。 【参考方案1】:

试试这个..

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); 

【讨论】:

试过了,但是现在about.blade.php和about.php都不会加载,welcome.blade.php也不会加载 这不会解决任何问题,因为 view()View::make() 在幕后解析为 Illuminate\View\Factory::make()【参考方案2】:

我也遇到了同样的问题,about.blade.php 文件也是如此。 当我将文件重命名为 abou.blade.php(不带“t”)时,一切都按预期进行。我又试了几次(用 ab.blade.php、abouts.blade.php、...等其他词),我无法相信问题出在文件命名上(但确实如此)。经过多次测试,我发现问题确实是文件权限。

我在 Ubuntu 上工作,我看到我对 /var/www/html 文件夹的权限已重置,所以我需要再次执行 'chmod -R 777 /var/www/html/'。

【讨论】:

你所做的是给每个人完全的权限。这绝对不是解决方案.. 你是对的,这不是要走的路,但这是在本地机器上完成的(而不是在实时服务器上)。我只是想指出这是一个权限问题...【参考方案3】:

试试return redirect('about')-&gt;with('name', $name);

【讨论】:

以上是关于Laravel .blade 视图不会加载的主要内容,如果未能解决你的问题,请参考以下文章

Laravel/Blade:预选下拉选项

Laravel Blade 模板引擎会影响性能吗?

Laravel 5.1 Ajax 从 Blade View 获取 html

PHP笔记-laravel中Blade模板引擎的使用

laravel视图

Vue 组件渲染而不是 Laravel Blade 模板