首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5.4 - @extends不起作用

Laravel 5.4 - @extends不起作用
EN

Stack Overflow用户
提问于 2017-05-25 10:32:11
回答 2查看 2K关注 0票数 3

我对拉拉维尔有两种主要看法。

在web.php中,两者都按如下方式调用:

代码语言:javascript
复制
Route::get('/characters', 'CharacterController@index');
Route::get('/characters/{char_id}', 'CharacterController@viewCharacter');

下面是它们在CharacterController中的功能:

/characters:

代码语言:javascript
复制
public function index()
{



$characters = Character::userChars();

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


}

字符/{char_id}:

代码语言:javascript
复制
public function viewCharacter ($char_id)

{

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

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


}

/characters工作得很好。它用

代码语言:javascript
复制
@extends('layouts.master')

@section('content')

@endsection

所有内容都会很好地加载,CSS就会显示出来。

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

它显示@extends中的内容,但根本不会呈现CSS。

这是字符/{char_id}的刀片模板:

代码语言:javascript
复制
@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

它与/characters使用的视图相同,但内容部分中的内容除外。

这里是"master.blade.php":https://pastebin.com/kjnxc0ms

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-25 11:02:14

master.blade.php布局中,资产是从相对url加载的。

因此,例如,如果您的资产是从assets/css/bootstrap.min.css加载的,而您当前的url是example.com/character,那么您的资产将从example.com/assets/css/bootstrap.min.css加载。到目前为止这似乎还不错。

但是如果您的url是example.com/characters/potato,那么资产将从example.com/characters/assets/css/bootstrap.min.css加载。这可以很容易地从浏览器控制台中识别出来,因为它在加载资产时会显示404个错误。(铬上的F12)

对此有两种解决办法:

  • 在资产路径前加上一个正斜杠,如so /assets/css/bootstrap.min.css
  • 一个特定于laravel的解决方案是使用资产助手函数{{ asset('assets/css/bootstrap.min.css') }}
票数 3
EN

Stack Overflow用户

发布于 2017-05-25 10:56:00

首先发布你的布局代码。

第二,确保您使用帮助器asset调用您的css。

代码语言:javascript
复制
{{ URL::asset('css/style.css'); }} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44178286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档