モジュールテンプレートファイルに画像を表示したい。誰かが私のモジュールをインストールすると、彼はその画像を見ることができます。モジュールディレクトリ内に画像を保存できますか?
Ohoo ankushバハイmagento2
—
アミット・シン
モジュールテンプレートファイルに画像を表示したい。誰かが私のモジュールをインストールすると、彼はその画像を見ることができます。モジュールディレクトリ内に画像を保存できますか?
回答:
はい。テンプレートの領域に応じて、モジュールのWebディレクトリに画像を保存できます。パスは次の とおりです。Vendor/ Module / view / {frontend | adminhtml} / web / images /
次に、*。phtmlファイルで画像を表示できます。
<img src="<?php echo $this->getViewFileUrl('Vendor_Module::images/image.png'); ?>" />
\Magento\Framework\View\Result\PageFactory
では、コンストラクタにクラスをインジェクトし、メソッド$pageFactory
を呼び出すことができます$pageFactory->getViewFileUrl()
。jsファイルの場合、どのように取得できるかわかりません。
私はPNGをbase-64でエンコードし、インライン化するのが好きです。https://www.base64-image.deを使用します。
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ....=">
<script type="text/x-magento-init">
{
<?php /* this defines the target of the widget */ ?>
"#target_id": {
<?php /* this defines the widget */ ?>
"image.widget.name": {
"imagename" : "<?php echo $this->getViewFileUrl('Vendor_Module::images/image.png'); ?>"
}
}
}
magentoのウィジェット初期化スクリプトを使用して、「imagename」オプションを定義してJavaScriptを開始します。この初期化手法は通常、phtmlファイルで行われます。私のコードは、画像がVendor / Module / view / {frontend | adminhtml} / web / images /にあると想定しています
詳細については、magento 2のドキュメントをご覧ください。http://devdocs.magento.com/guides/v2.1/javascript-dev-guide/javascript/js_init.html