Laravel 5 Laravel 5如何动态包含外部CSS和JS文件取决于控制器/路由

Laravel 5 Laravel 5如何动态包含外部CSS和JS文件取决于控制器/路由,laravel-5,Laravel 5,我想知道有什么好方法可以 在我的主刀片中动态包含一个js文件 像这样的模板 <?php $currentRoute = Route::currentRouteName(); $currentRoute = $currentRoute?$currentRoute:'home'; $currentRoute = explode('.',$currentRoute); ?> <script src="{{$currentRoute[0]}}.js"></script&

我想知道有什么好方法可以 在我的主刀片中动态包含一个js文件 像这样的模板

<?php
$currentRoute = Route::currentRouteName();
$currentRoute = $currentRoute?$currentRoute:'home';
$currentRoute = explode('.',$currentRoute);
  ?>
<script src="{{$currentRoute[0]}}.js"></script> 


但有一点不那么棘手:)

我在过去做过类似的事情。 下面是我的“诀窍”

首先,您需要一个顶级控制器类

class MainController extends Controller {

   protected static $js_files  = [];
   protected static $css_files = [];

   public static function boot()
   {
      view()->share('js_files', static::$js_files);
      view()->share('css_files', static::$css_files);
      parent::boot();
   }
}
然后,所有控制器都必须从MainController类继承

我之所以使用关键字“static::”而不是“self::”是因为我想检索最新的子属性,而不是“MainController”属性,后者会给我关键字“self::”

看 在刀片布局中,在“头部”部分执行以下操作:

@foreach($css_files as $src)
   <link href="{{$src}}" rel="stylesheet">
@endforeach
@foreach($css\u文件为$src)
@endforeach
在你的结束身体标签之前

@foreach($js_files as $src)
    <script src="{{$src}}"></script>
@endforeach
@foreach($js_文件为$src)
@endforeach
在每个控制器中,您必须将$js_文件和$css_文件作为所有js/css源的继承属性

如果只想为一个路由包含JS/CSS,可以直接在方法中添加文件源


我在过去做过类似的事情。 下面是我的“诀窍”

首先,您需要一个顶级控制器类

class MainController extends Controller {

   protected static $js_files  = [];
   protected static $css_files = [];

   public static function boot()
   {
      view()->share('js_files', static::$js_files);
      view()->share('css_files', static::$css_files);
      parent::boot();
   }
}
然后,所有控制器都必须从MainController类继承

我之所以使用关键字“static::”而不是“self::”是因为我想检索最新的子属性,而不是“MainController”属性,后者会给我关键字“self::”

看 在刀片布局中,在“头部”部分执行以下操作:

@foreach($css_files as $src)
   <link href="{{$src}}" rel="stylesheet">
@endforeach
@foreach($css\u文件为$src)
@endforeach
在你的结束身体标签之前

@foreach($js_files as $src)
    <script src="{{$src}}"></script>
@endforeach
@foreach($js_文件为$src)
@endforeach
在每个控制器中,您必须将$js_文件和$css_文件作为所有js/css源的继承属性

如果只想为一个路由包含JS/CSS,可以直接在方法中添加文件源


扩展MainController后,在控制器中绑定js和css的位置?假设我在那个方法中有create方法?还有,如何将此变量传递到刀片模板?您可以在任何地方执行此操作。构造函数或您想要的任何方法。扩展MainController后,在controller中绑定js和css的位置?假设我在那个方法中有create方法?还有,如何将此变量传递到刀片模板?您可以在任何地方执行此操作。构造函数或任何您想要的方法。