Laravel 5.4 - @extends无效

时间:2017-05-25 10:32:12

标签: php laravel-5 laravel-5.4

我在Laravel有两个主要观点。

两者在web.php中被调用如下:

Route::get('/characters', 'CharacterController@index');
Route::get('/characters/{char_id}', 'CharacterController@viewCharacter');

这里是他们在CharacterController中的功能:

/字符:

public function index()
{



$characters = Character::userChars();

return view('pages.characters', compact('characters') );


}

字符/ {char_id}:

public function viewCharacter ($char_id)

{

    $character = \DB::table('characters')->where('char_id', $char_id)->first();

    return view('pages.view-character', compact('character') );


}

/字符工作正常。 它使用

@extends('layouts.master')

@section('content')

@endsection

所有内容加载正常,CSS显示。

但是,字符/ {char_id}拒绝正常工作。

它显示来自@extends的内容,但根本不会渲染CSS。

这是字符/ {char_id}:

的刀片模板
@extends('layouts.master')

@section('content')

<div id="page-wrapper">

            <div class="container-fluid">

                <!-- Page Heading -->
                <div class="row">
                    <div class="col-lg-12">
                        <h1 class="page-header">
                            Template <small>Template Page</small>
                        </h1>
                        <ol class="breadcrumb">
                            <li class="active">
                                <i class="fa fa-dashboard"></i> Template 1

                            </li>
                        </ol>
                    </div>
                </div>








            </div>
</div>

@endsection

与/字符使用的视图相同,除了内容部分中的内容。

这是&#34; master.blade.php&#34;: https://pastebin.com/kjnxc0ms

谢谢!

2 个答案:

答案 0 :(得分:2)

master.blade.php版面中,资源是从相对网址

加载的

例如,如果您的资源是从assets/css/bootstrap.min.css加载的,而您当前的网址是example.com/character,那么您的资产将从example.com/assets/css/bootstrap.min.css加载。到目前为止这似乎很好

但如果您的网址为example.com/characters/potato,那么资源将从example.com/characters/assets/css/bootstrap.min.css加载。这可以从浏览器控制台轻松识别,因为它在加载资产时会显示404错误。 (铬上的F12)

两个解决方案:

  • 使用类似/assets/css/bootstrap.min.css的正斜杠前缀资产路径。
  • 特定于laravel的解决方案是使用资产助手函数{{ asset('assets/css/bootstrap.min.css') }}

答案 1 :(得分:1)

首先发布布局代码。

第二,确保使用帮助asset来调用你的css,例如

{{ URL::asset('css/style.css'); }}