首页 文章

Laravel Blade没有显示部分

提问于
浏览
0

我遇到了Blade显示一个部分的麻烦 . 这是我的主要布局文件:

<!DOCTYPE html>
<html lang="en">
    <!-- Include Header -->
    @include('layouts.header')
    <body class="index-page">
        <!-- Include Navigation -->
        @include('layouts.navigation')
        <div class="wrapper">
                @include('layouts.banner')
                <div class="main main-raised">
                    <!-- Include Content -->
                    @yield('content')
                </div>      
        </div>
    <!-- Include Footer -->
    @include('layouts.footer')
    <!-- Include Modals -->
    @include('layouts.modals')
    <!-- Include Scripts -->
    @include('layouts.scripts')
    </body>
</html>

这是layouts.header文件:

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>Title</title>

    <!-- Styles -->
    <link href="/assets/css/app.css" rel="stylesheet">
    @yield('styles')

    <!-- Fonts -->
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css">

    <!-- Scripts -->
    <script>
        window.Laravel = <?php echo json_encode([
            'csrfToken' => csrf_token(),
        ]); ?>
    </script>
    @yield('header')
</head>

最后,导航文件:

@if (Auth::user())
        @section('styles')
            <link href="/assets/css/vendor/wizard.css" rel="stylesheet">
            <link href="/assets/css/vendor/bootstrap-select.css" rel="stylesheet">
            <link href="/assets/css/vendor/summernote.css" rel="stylesheet">
        @endsection
        @endif

        <nav class="navbar navbar-fixed-top navbar-color-on-scroll navbar-
           <!-- A lot of boring code here -->
        </nav>
@section('modals')
    @if (Auth::user())
        @include('layouts.modals.addonupload')
    @else
        @include('layouts.modals.login')
        @include('layouts.modals.register')
        @include('layouts.modals.reset')
    @endif
@endsection

@section('scripts')
    @if (Auth::user())
        @include('layouts.modals.js.addonupload')
    @endif
@endsection

所以,理论上,我在顶部的layouts.navigation中定义的css文件应该包含在我产生它们的头文件中 . 但他们不是出于某种原因 .

请注意,我在导航工作底部包含的模态符合预期 . 此外,我之前有过这个工作 . 但我在另一个负责内容的视图中有css部分(现在在导航文件中) . 我所做的就是将样式部分从内容视图文件移动到导航文件中 .

背景是这样的:我有一个需要某些css和js文件的模态 . 我希望只要用户登录就在每个视图上提供该模态 . 我不想将它们硬编码到 Headers 中,因为如果用户没有登录则我不需要它们 . 再次,模态和底部的脚本部分工作正常 . 只是样式部分没有包含在 Headers 中 . 谁会知道为什么?

谢谢!

2 回答

  • 1

    如果你想有条件地使用某些css和javascript,我建议使用@ push这样你可以尽可能地包含资源 .

    例如 scripts.blade.php

    <script src="{{ secure_asset('bower\jquery\dist\jquery.min.js') }}"></script>
    <script src="{{ secure_asset('bower\materialize\dist\js\materialize.min.js') }}"></script>
    
    @stack('scripts')
    
  • 0

    如果您将代码更改为以下内容会有所不同吗?

    @section('styles')
        @if (Auth::user())
            <link href="/assets/css/vendor/wizard.css" rel="stylesheet">
            <link href="/assets/css/vendor/bootstrap-select.css" rel="stylesheet">
            <link href="/assets/css/vendor/summernote.css" rel="stylesheet">
        @endif
    @endsection
    

    你的'modals'和'scripts'部分的 @section 中有 @if -statement,根据你的说法,它可以正常工作 .

相关问题