0

私は彼らのドキュメントでこのページをチェックしています: http://documentation.concrete5.org/developers/assets/requiring-an-asset

しかし、どのオプションもうまくいきません。エラーも何もありません。requireAssetメソッドを無視するだけです。

コントローラー

<?php
namespace Application\Controller\SinglePage;

use PageController;

class MyAccount extends PageController
{
  public function view()
  {
    $this->requireAsset('javascript', 'js/my_account');
  }
}
4

2 に答える 2

2

あなたが行った方法は機能しますが、あまり便利ではなく、すべてのオプションを利用するわけではありません。問題は、最初に実際に宣言したことのないコントローラーでアセットを必要としていたという事実から生じました。

今は app.php で宣言されていますが、そうである必要はありません。コントローラーでも実行できるため、保守が容易になります。

<?php
namespace Application\Controller\SinglePage;

use PageController;
use AssetList;
use Asset;

class MyAccount extends PageController
{
    public function view()
    {
        $al = AssetList::getInstance();

        // Register (declare) a javascript script. here I called it foobar/my-script which is the reference used to request it
        $al->register(
            'javascript', 'foobar/my-script', 'js/my_account.js', array('version' => '1.0', 'position' => Asset::ASSET_POSITION_FOOTER, 'minify' => true, 'combine' => true)
        );

        // Register (declare) a css stylesheet. here I called it foobar/my-stylesheet which is the reference used to request it
        $al->register(
            'css', 'foobar/my-stylesheet', 'css/my_account.css', array('version' => '1.0', 'position' => Asset::ASSET_POSITION_HEADER, 'minify' => true, 'combine' => true)
        );

        // Gather all the assets declared above in an array so you can request them all at once if needed
        $assets = array(
            array('css', 'foobar/my-stylesheet'),
            array('javascript', 'foobar/my-script')
        );

        // Register the asset group that includes all your assets (or a subset as you like). here I called it foobar/my-account which is the reference used to request it
        $al->registerGroup('foobar/my-account', $assets);

        // require the group so all the assets are loaded together
        $this->requireAsset('foobar/my-account');

        // Alternatively you can call only one of them
        // $this->requireAsset('javascript', 'foobar/my-script');
    }
}
于 2016-12-17T12:35:27.300 に答える