Blade 模板在一个子视图中加载资源不适用于其他子视图

Blade template loads the resources in one sub view doesn't work for other

我在使用 Laravel 中的模板时遇到了一个非常奇怪的问题。我将用下面的例子来证明它。

css/custom.css

.muted{ color:red }

Layout.blade.php

<html>
  <head>
    <title> HomePage </title>
    <link href="css/custom.css" rel="stylesheet" />
  </head>
  <body>
      <p>Layout file</p>
      @yield('content') 
  </body>
</html>

subview1.blade.php

@extends('Layout')

@section('content')
   <p class="muted"> From sub view 1 </p>
@stop

subview2.blade.php

@extends('Layout')

@section('content')
     <p class="muted"> From subview 2 </p>
@stop

实际上,子视图 2 未应用 class 静音。并且控制台显示它 无法加载资源,即 custom/css 当加载第二个视图时,但与 subview1

一起工作正常

非常感谢任何指向实际问题和解决方案的指示。

编辑

附件是目录结构。我是这样引用它的。

1) dashboard_layout.blade.php(布局文件)

2) dashboard_index.blade.php ( subview1 )

3) course_index.blade.php (子视图 2)

dashboard_index.blade.php

@extends('teacher.dashboard.dashboard_layout')

course_index.blade.php

@extends('teacher.dashboard.dashboard_layout')

实际上,使用相对 paths.You 引用相同的资产总是令人困惑,必须有敏锐的眼光才能工作 out.Here 来自 Laravel 的 Html 提供商。使用它们在您的 blade 文件中引用您的资产,如下所述,而不是使用简单的 link 和脚本标签。

Html::style('assets/css/custom.css') // For style sheets.
Html::script('assets/js/custom.js') // For scritps.

注意:根据 Laravels 应用程序结构,上述资产目录位于您的 public 文件夹下。

Html & Form Providers 在 Laravel 的最新版本 versions.But 中随 Laravel 基本应用一起提供。它们从 core.So 上面的代码片段中删除会产生错误。您可以按照此处提到的最少步骤 laravelcollective 来解决问题。

祝您学习愉快!