刀片模板在一个子视图中加载资源对其他子视图不起作用

时间:2016-07-21 14:04:00

标签: php view laravel-5.2 laravel-blade subviews

我在使用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,未应用静音的类。并且控制台显示加载第二个视图时无法加载资源,即custom / css ,但是对于subview1可以正常工作

非常感谢任何关于真正问题和解决方案的指示。

修改

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

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

2)dashboard_index.blade.php(subview1)

3)course_index.blade.php(subview2)

dashboard_index.blade.php

@extends('teacher.dashboard.dashboard_layout')

course_index.blade.php

@extends('teacher.dashboard.dashboard_layout')

blade_stack_ques_ref

1 个答案:

答案 0 :(得分:0)

实际上,使用相对路径引用相同的资产总是令人困惑。你必须有一个老鹰眼来解决。这是Laravel的Html提供者。如下所述,使用它们来引用刀片文件中的资产,而不是使用简单的链接和脚本标记。

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

注意:根据Laravels应用结构,上面提到的资源目录位于您的公共文件夹下。

Html&amp;表单提供程序在之前的版本中附带了Laravel基本应用程序。但是最新版本的Laravel。它们将从核心中删除。因此,上面的代码片段会产生错误。您可以按照laravelcollective中提到的最小步骤来解决问题。

快乐学习!