管理资源(Assets)

Contents

注册资源

The Asset类提供了一个简单的方法用来管理项目中用到的CSS和JavaScript. 注册一个资源只需要调用Asset类的add方法就可以:

注册一个资源:

Asset::add('jquery', 'js/jquery.js');

add方法接受三个参数. 第一个是资源名称, 第二个是相对于 public文件夹下的资源路径,第三个是一个资源依赖的列表 (后面会详细较少). 注意我们不需要告诉方法我们注册的是CSS还是JS. add方法会根据文件扩展名后缀自动判断出资源类型.

输出资源

当你想要在视图中输出资源连接时, 你可以调用styles或者scripts方法:

输出资源到一个视图中:

<head>
    <?php echo Asset::styles(); ?>
    <?php echo Asset::scripts(); ?>
</head>

资源依赖

有时你可能需要指定资源具有依赖性. 这意味着, 在视图中这些资源需要其他资源在该资源被调用之前声明调用. Laravel中管理资源的依赖性非常简单, 记住你为资源指定的"名称", 你可以把他们作为第三个是参数传入到add方法中:

注册一个需要依赖其他资源的资源:

Asset::add('jquery-ui', 'js/jquery-ui.js', 'jquery');

在这个例子中, 我们注册了jquery-ui的资源, 并指定他依赖于jquery的资源. 现在, 当你把你的资源连接放入视图之后, jQuery的资源将永远在jQuery UI资源之前被声明引入. 想注册多个依赖, 没问题:

注册一个需要依赖其他多个资源的资源:

Asset::add('jquery-ui', 'js/jquery-ui.js', array('first', 'second'));

资源容器

为了提高响应时间, 通常把JavaScript放置在HTML文档的底部. 但是, 如果你还需要将您的部分源放在文件头部该怎么办呢? 没问题. Asset类提供了简单的途径来处理这个问题, 通过资源容器(containers). Asset类的container方法基于容器名称. 你可以利用简介的语法形式方便的把资源添加到容器之中:

检索一个资源容器实例并添加资源:

Asset::container('footer')->add('example', 'js/example.js');

输出给定的资源容器的资源:

echo Asset::container('footer')->scripts();

bundle资源

在学习如何方便的添加和输出资源之前, 你可以先参阅创建和发布bundle资源.

当注册一个资源时, 资源路径通常是在public文件夹, 但是这在处理bundle资源时是很不方便的, 因为他们么人在public/bundles文件夹下. 但是Laravel旨在让你的开发变得简单所以可以很简单指定资源容器管理的bundle.

指定资源容器管理的bundle:

Asset::container('foo')->bundle('admin');

现在, 当你添加资源时, 你可以通过相对路径(相对于bundle的public文件夹)来指定. Laravel会自动生成正确的完全路径.