38

新しい Laravel 4 でアセットをどのように管理しますか? Taylor OtwellがAsset::add新しいものに置き換えられたようです.

私がやろうとしているのは、Laravel に CSS と JS ファイルを追加させることです。Laravel 3 ではこれを行う方法がいくつかありましたが、現在はなくなっているようです。1 つはAsset::addで、もう 1 つは でしたHTML。これらの代替品は何ですか?

4

13 に答える 13

8

私はヘルパーを使用します:

<script src="{{ asset('js/jquery-1.9.1.js') }}"></script>
<script src="{{ asset('js/bootstrap.min.js') }}"></script>

こちらもご覧ください

vendor/laravel/framework/src/Illuminate/Support/helpers.php

app_path()、さまざまな配列ツール、link_to_route()、link_to_action()、storage_path() など、他の多くのヘルパーも同様です。

于 2013-05-03T13:21:33.450 に答える
8

Laravel 4 には、すぐに使えるアセット管理機能がありません。しかし、この種のことを処理するためにいくつかのパッケージが作成されています。

  • codeleeve/asset-pipeline (これまでのお気に入り)

  • jasonlewis/basset (これにはいくつかのエラーがありました)

  • teepluss/asset (Laravel 3 Asset::add() に最も近いが、連結や縮小は行わない)

  • way/guard-laravel (実行するには ruby​​ ガード gem が必要です)

于 2013-06-21T19:29:55.337 に答える
7

これは、特定のページにのみいくつかの .css および .js ファイルを追加する必要があるときに行った方法です。

私のブレードテンプレートでは:

<head>
<title>.....</title>
.....
@yield('head')
</head>

そして、私の特定のページブレードファイルでは:

@extends('template')
    @section('head')
    {{ HTML::style('css/filename.css') }}
    {{ HTML::script('js/filename.js') }}
    @stop
...
于 2013-06-11T09:29:51.590 に答える
4

Basset (以前の Best Asset) はどうですか?: http://jasonlewis.me/code/basset

L4にインストールしたばかりで、まだテストは行われていませんが、有望な音です。

于 2013-01-08T23:59:45.977 に答える
2

Laravel 3 の Asset クラスのポート。Laravel 4で動作するように作られています。

https://github.com/teepluss/laravel4-asset.git

于 2013-04-03T16:29:48.700 に答える
1

私は Laravel 3 Asset クラスのはるかに単純なバージョンを作成し、Laravel 4 で完璧に動作します。私にとって必要なのはそれだけです! コンテナーの名前を選択し、アセットを最終的な順序で追加するだけです。

Asset::container('jq_1.10')->add('js/jquery-1.10.1.min.js')->add('css/css.css');

出力の場合:

echo Asset::container('jq_1.10')->asset();

クラス:

class Asset {
public static $containers = array();

public static function container($container = 'default')
{
    if ( ! isset(static::$containers[$container]))
    {
        static::$containers[$container] = new Asset_Container($container);
    }
    return static::$containers[$container];
}
}

class Asset_Container {
public $name;
public $assets = array();

public function __construct($name)
{
    $this->name = $name;
}
public function add($source)
{
    $type = (pathinfo($source, PATHINFO_EXTENSION) == 'css') ? 'style' : 'script';
    $obj = (object)array('type' => $type,'source' => $source);
    $this->assets[] = $obj;
    return $this;
}
public function asset()
{
    $str = '';
    foreach($this->assets as $aset){
        if($aset->type == 'style')$str .= HTML::style($aset->source);
        else $str .= HTML::script($aset->source);
    }
    return $str;
}
}
于 2013-06-11T19:31:05.273 に答える
0

または、Grunt.js を使用してアセットを管理することもできます。

Grunt は基本的に、次のような「タスク」を実行するプラグインのライブラリです。

  • LESS をコンパイルする
  • JSファイルを結合する
  • JS ファイルを縮小する
  • もっともっと....

すべて PHP から独立しています。

于 2014-01-01T04:26:35.317 に答える
0

これらはLaravel 4には存在しません-Composerバンドルを使用してそれらを追加するという考えだと思います.

Meido は、Laravel 3 から Laravel 4 への HTML、Form、および Str クラスの「ポート」を作成しました。

アセット ポートについては知りません。ニーズに合ったものを見つけるには、Composer に既にあるバンドルを参照する必要があると思います。

于 2013-01-08T09:39:10.263 に答える