我的Laravel布局目前如下(删除导航栏等):

<link href="//maxcdn.bootstrapcdn.com/bootswatch/3.3.4/flatly/bootstrap.min.css" 
     rel="stylesheet">
<link href="{{ asset('/css/app.css') }}" rel="stylesheet">

<!-- Fonts -->
<link href='//fonts.googleapis.com/css?family=Roboto:400,300' rel='stylesheet' 
    type='text/css'>

<!-- Scripts -->
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>
<body>

    <div class="container">

        @yield('content')

    </div>

    <!-- Scripts -->
    <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <script src="{{ asset('assets/vendor/toastr/toastr.min.js') }}"></script>
</body>
</html>

然后,我将视图附加到布局:

@extends('app')

@section('content')

Content here.

@endsection

我很困惑,比如说,如果我在clinicController.php或在一个诊所路由(这是一个资源),然后"注入"一个样式表和一个Javascript文件到适当的地方.

有办法做到这一点吗?我想@if on a certain page, display this个就行了,但我相信一定有更"拉威尔"的方法来做到这一点?

任何帮助都将不胜感激.

推荐答案

例如,您可以在view中创建一个section,如下所示:

@extends('layouts.master')

@section('styles')
    <link href="{{asset('assets/css/custom-style.css')}}" />
@stop

然后在你的layout@yield中,例如:

<!--Static StyleSheets-->
<link href="{{asset('assets/css/common-style.css')}}" rel="stylesheet" />

<!--Dynamic StyleSheets added from a view would be pasted here-->
@yield('styles')

例如,script个标签也是如此(layout可能与styles/scripts类似):

<html>
    <head>
        <!--Static StyleSheets-->
        <link href="{{asset('assets/css/common-style.css')}}" />

        <!--Dynamic StyleSheets added from a view would be pasted here-->
        @yield('styles')
    </head/>

    <!-- Template Body -->
    <body>
        <!-- Other HTML Elements -->
        <div class="container">
            @yield('content')
        </div>

        <!-- Dump all dynamic scripts into template -->
        @yield('scripts')
    </body>
</html>

Update:由于Laravel 5.2,styles/scripts可以使用Stacks,例如:

从某种Angular 来看:

@extends('layouts.master')

@section('content')
    <!-- Content -->
@endsection

<!-- Push a style dynamically from a view -->
@push('styles')
    <link href="{{asset('assets/css/common-style.css')}}" />
@endpush

<!-- Push a script dynamically from a view -->
@push('scripts')
    <script src="/example.js"></script>
@endpush

模板:

<html>
    <head>
        <!--Static StyleSheets-->
        <link href="{{asset('assets/css/common-style.css')}}" />

        <!--Dynamic StyleSheets added from a view would be pasted here-->
        @stack('styles')
    </head/>
    <!-- Template Body -->
    <body>

        <!-- Other HTML Elements -->
        <div class="container">
            @yield('content')
        </div>

        <!-- Dump all dynamic scripts into template -->
        @stack('scripts')

    </body>
</html>

Laravel相关问答推荐

laravel错误更新使用外键的数据库

如何在Laravel中从多行中获取合并数组?

Laravel 语法 GroupBy 获取列到数组

Laravel 9 如何将 url 中的参数从一个控制器传递到另一个控制器?

Laravel:在失败时处理 findOrFail()

Laravel 5.2 无法打开 laravel.log

如何在 Laravel 中使用内存数据库的完整测试套件之前迁移和 seeder ?

如何为路由 laravel 5 使用OR中间件

如何修复无效请求(不支持的 SSL 请求)

Homestead 2.0 多个站点,都链接到同一个 url

如何创建具有关系的 Eloquent 模型?

Laravel 5 环境配置数组?

在 Laravel 测试用例中模拟一个 http 请求并解析路由参数

Composer RuntimeException - 无法加载软件包 mews/purifier

在 Laravel 5.4 中将文件存储在公共目录和存储中的区别

如何使用队列设置高、低和中优先级Electron邮件?

Laravel 更新后用户模型错误(用户类包含 3 个抽象方法)

为什么`catch (Exception $e)` 不处理这个`ErrorException`?

连接到 tcp://smtp.mail.yahoo.com:465 超时

Laravel 4 控制器模板/Blade - 正确的方法?