我遇到了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 回答
如果你想有条件地使用某些css和javascript,我建议使用@ push这样你可以尽可能地包含资源 .
例如 scripts.blade.php
如果您将代码更改为以下内容会有所不同吗?
你的'modals'和'scripts'部分的
@section
中有@if
-statement,根据你的说法,它可以正常工作 .