我遇到了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文件的模态。我希望只要用户登录就在每个视图上提供该模态。我不想将它们硬编码到标题中,因为如果用户没有登录则我不需要它们。再次,模态和底部的脚本部分工作正常。只是样式部分没有包含在标题中。有谁知道为什么?
谢谢!
答案 0 :(得分:1)
如果您想有条件地使用某些css和javascript,我建议您使用@ push 这样,您可以尽可能地包含资源。
e.g。的 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')
答案 1 :(得分: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
@if
- @section
声明你的“模态”和“脚本”部分,根据你的说法,它可以正常使用。