2017-05-25 23 views
2

私はLaravelに2つのメインビューを持っています。Laravel 5.4 - @extends not working

次のように両方をweb.phpに、呼び出される。

Route::get('/characters', '[email protected]'); 
Route::get('/characters/{char_id}', '[email protected]'); 

ここ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 

する/文字は、コンテンツセクションに何を除いて、使用するビューと同じです。

は、ここで "master.blade.php" です: https://pastebin.com/kjnxc0ms

ありがとう!

+1

'dd()'はそれ以上の実行を停止します。それは_die_の部分です。あなたがそれをレンダリングするのを許さないので、レイアウトはレンダリングされません。 'dd()' **は本当に**あなたがここで欲しいものですか?あなたはそれで何を達成しようとしていますか? – Kaspars

+0

@ Kasparsそうではありません。私は、変数が正しく渡されたことをテストするためにのみ使用しています。 これを削除しましたが、今は "@extends"のコンテンツを取得しますが、なんらかの理由でCSSがレンダリングされません。私はこれを反映するために私の質問を編集します。 –

+0

'layouts.master'ファイルも投稿してください。 – Kaspars

答えて

1

あなたの資産がassets/css/bootstrap.min.cssからロードされ、現在のURLは、あなたの資産がexample.com/assets/css/bootstrap.min.cssからexample.com/characterロードされますされている場合、資産は例えばだから、相対URLから

をロードされます。これはこれまでのところよく見えます

あなたのURLがexample.com/characters/potatoの場合、資産はexample.com/characters/assets/css/bootstrap.min.cssから読み込まれます。これは、アセットを読み込むときに404エラーが表示されるため、ブラウザコンソールから簡単に識別できます。 (クロムのF12)これまで

2種類の溶液:

  • プレフィックスので/assets/css/bootstrap.min.cssのようにスラッシュを使用して資産パス。
  • laravel固有の解決策は、アセットヘルパ関数{{ asset('assets/css/bootstrap.min.css') }}を使用することです。
+0

私の美しいCSSはすべて戻ってきました。大変ありがとうございますKaspars! –

0

最初に投稿するレイアウトコード。

秒ヘルパーassetなどを使用してCSSを呼び出すようにしてください。あなたのmaster.blade.phpレイアウトで

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

もちろん、最後に貼り付けビンにレイアウトコードを追加しました。私はそのようにCSSを呼び出すことを試みます。 –