現在、非常に大きな画像がたくさんあるTYPO3(現時点ではバージョン8.1.2)を使ってウェブサイトを構築しています。TYPO3 8.1:必要なときにのみ画像を生成
<picture>
<source media="(min-width:1600px)" srcset="{f:uri.image(image: file)}">
<source media="(min-width:1200px)" srcset="{f:uri.image(image: file, maxWidth: 1600)}, {f:uri.image(image: file, maxWidth: 3200)} 2x">
<source media="(min-width:992px)" srcset="{f:uri.image(image: file, maxWidth: 1200)}, {f:uri.image(image: file, maxWidth: 2400)} 2x">
<source media="(min-width:768px)" srcset="{f:uri.image(image: file, maxWidth: 992)}, {f:uri.image(image: file, maxWidth: 1984)} 2x">
<img class="img-responsive" srcset="{f:uri.image(image: file, maxWidth: 768)}, {f:uri.image(image: file, maxWidth: 1536)} 2x">
</picture>
この設定に問題があるという別のファイルがまだ作成されていない場合、例えば:私は現在、このようになります画像のビューヘルパーを含め、私のニーズに合わせて拡張TYPO3のブートストラップパッケージを使用して、修正しています新しい画像を追加した後で初めてページを表示した場合、TYPO3はさまざまなサイズの画像をすべて生成するために数多くの処理を行い、時間がかかりすぎる(1分以上かかる)。その特定のファイルを要求された場合のように遅く、すなわち(可能な限り特定の画像をレンダリングするためにTYPO3を伝えるために
方法:
だから、私が探している2つの解決策の一つでありますページがTYPO3でレンダリングされていないときはブラウザのブラウザではない)または
ajaxを使用して実際に必要な画像のサイズのみを要求する方法私のViewHelperを次のように変更してください:
<img data-uid="{file.propertiesOfFileReference.uid}">
実際に必要なサイズを判断し、正確にそのサイズで画像を要求するjavascript-codeがあります(200pxのステップでキャッシュするため)。これのjs部分はかなり簡単に行うべきですが、typo3を実装する方法はわかりません。 typo3とajaxについては、さまざまなサイトで解説されていますが、最近のものがどれくらいのものであるかを知りません。画像をレンダリングするビューヘルパーを呼び出さなければなりません。それをどうやって行うのか分かりません。
この2つの解決法のいずれかが可能なのかどうか、私に正しい方向を教えてもらえますか?
この拡張機能は、おそらくあなたを助けます:https://typo3.org/extensions/repository/view/lef_responsive_images。一方、ページが動的でない場合は、すべてのコンテンツを事前レンダリングするクローラ・タスクを設定できます。 – mtness