Laravel Asset Pipeline条件JavaScript

时间:2014-02-13 12:22:27

标签: laravel-4 asset-pipeline

由于Laravel的Asset Pipeline包不允许您有条件地向页面添加脚本/样式表,这样做的最佳方式是什么?

我有一个JavaScript文件,它是一组连接在一起的文件,包含在每个页面上,为我们提供了一个库文件。我现在需要做的是为某些页面添加另一个JavaScript文件(所有页面都使用相同的模板)。

我目前的计划是扩展BaseController以添加一系列脚本/样式,如果有任何项目,可以动态附加到模板。但肯定有一种更好的方式是Asset Pipeline包的一部分吗?

1 个答案:

答案 0 :(得分:7)

它没有使用asset-pipeline,但我使用的解决方案是Blade模板中的@parent指令。

在我的网站上,我在每个页面中都需要多个js和几个css(例如。Twitter bootstrap),我有Blade layout包含这些内容。< / p>

然后在某些页面上(我的应用程序是一个分析应用程序)我需要包含特定于页面的资源(例如图表库)。

因此,在我的布局上,我有:

@section('js')
{{ HTML::script('js/a.js') }}
@show

@section('css')
{{ HTML::style('css/a.css') }}
@show

然后在特定页面上,我有:

@extends('layouts.site')

@section('js')
@parent
{{ HTML::script('js/b.js') }}
@stop

@section('css')
@parent
{{ HTML::style('css/b.css')
@stop

这对我很有用。我的应用程序中的子页面非常具体,他们需要哪些额外的资产,因此以这种方式控制它们是非常可行的。