ブロックのアセットとview.jsを読み込む順番がキャッシュ時に変わってしまう

2020年10月19日 at 20:19

8.5.4を使用中です。
あるブロックで使っているjsライブラリをアセットとして登録して、ブロックのcontroller.phpからrequireAsset()してロードし、ブロックのview.jsで使用しています。

キャッシュをオフにしているときは正しく読み込まれるのですが、キャッシュが有効化されると、アセットのjsライブラリよりも先にブロックのview.jsが読み込まれるような順番に結合されてしまい、ブロックのview.jsで呼び出し時にエラーとなってしまいます。
他のブロックではこうならないのですが、特定のブロックで起こってしまいます。なぜこうなってしまうのでしょうか?こういうことが起こりそうな要因をご存じの方がいれば教えて下さい。
ちなみに該当ページではこのブロック以外にview.jsを読み込む必要のあるようなブロックを使ってはいませんでした。

現状の実装は以下のような感じです。

application/bootstrap/app.php


$al = AssetList::getInstance();
$al->register('javascript', 'somelibrary', 'js/somelibrary/somelibrary.min.js');


application/blocks/someblock/controller.php

public function registerViewAssets($outputContent = '')
{
$this->requireAsset('javascript', 'somelibrary');
}


非キャッシュ時に出力されるスクリプトタグ

<script type="text/javascript" src="/application/js/somelibrary/somelibrary.min.js?ccm_nocache=d846f33d9148b37e63b22ff9a7339155be77a7f9"></script>
<script type="text/javascript" src="/application/blocks/someblock/view.js?ccm_nocache=d846f33d9148b37e63b22ff9a7339155be77a7f9"></script>



キャッシュ時に出力されるスクリプトタグ

<script type="text/javascript" src="(略) /application/blocks/someblock/view.js?ccm_nocache=d846f33d9148b37e63b22ff9a7339155be77a7f9 /application/js/somelibrary/somelibrary.min.js?ccm_nocache=d846f33d9148b37e63b22ff9a7339155be77a7f9 "></script>

タグ:

Re: ブロックのアセットとview.jsを読み込む順番がキャッシュ時に変わってしまう

2020年10月23日 at 13:08
誰もいなさそうですね…