静的ビューファイルのデプロイ
静的ビューファイルのデプロイメントコマンドを使用すると、Commerce ソフトウェアが実稼動モード に設定されている場合に、静的ファイルをCommerce ファイルシステムに書き込むことができます。
静的ビューファイルという用語は、次のことを指します。
- 「静的」とは、サイトに対してキャッシュできることを意味します(つまり、ファイルは動的に生成されません)。 例としては、LESSから生成された画像やCSSが含まれます。
- 「ビュー」とは、プレゼンテーション層(MVCから)を指します。
静的ビューファイルは<magento_root>/pub/static ディレクトリにあり、一部は<magento_root>/var/view_preprocessed ディレクトリにもキャッシュされています。
静的ビューファイルのデプロイメントは、次のようなアプリケーションモードの影響を受けます。
このトピックで説明するコマンドを使用して、静的ビューファイルをCommerce ファイルシステムに手動で書き込む必要があります。その後、権限を制限して脆弱性を制限し、ファイルの誤った上書きや悪意のある上書きを防ぐことができます。
静的ビューファイルをデプロイするには:
-
としてCommerce サーバーにログインするか、 ファイルシステムオーナーに切り替えます。
-
.htaccessファイルを除き、<magento_root>/pub/staticの内容を削除します。 このファイルは削除しないでください。 -
静的ビューファイル展開ツール
<magento_root>/bin/magento setup:static-content:deployを実行します。note info INFO 管理画面で静的ビューファイルの結合を有効にする場合、 pub/staticディレクトリシステムは書き込み可能である必要があります。コマンドオプション:
code language-shell bin/magento setup:static-content:deploy [<languages>] [-t|--theme[="<theme>"]] [--exclude-theme[="<theme>"]] [-l|--language[="<language>"]] [--exclude-language[="<language>"]] [-a|--area[="<area>"]] [--exclude-area[="<area>"]] [-j|--jobs[="<number>"]] [--no-javascript] [--no-css] [--no-less] [--no-images] [--no-fonts] [--no-html] [--no-misc] [--no-html-minify] [--no-parent] [-f|--force]
次の表に、このコマンドのパラメーターと値を示します。
<languages>en_US)次のコマンドを実行してリストを検索します:
bin/magento info:language:list--language (-l)例:
--language en_US --language es_ES--exclude-language--theme <theme>例:
--theme Magento/blank --theme Magento/luma--exclude-theme <theme>例:
--exclude-theme Magento/blank--area (-a)adminhtmlとfrontendです。 デフォルト値は all です。例:
--area adminhtml--exclude-area--symlink-locale--content-version=CONTENT-VERSION--no-javascript--no-css--no-less--no-images--no-fonts--no-html--no-misc--no-html-minify-s <quick|standard|compact>デプロイメント戦略の策定: これらのオプションは、複数のローカル環境がある場合にのみ使用します。
--no-parent--force (-f)<languages>と--languageの両方の値を指定した場合、<languages>が優先されます。例
次に、いくつかのコマンドの例を示します。
テーマの除外とHTMLの縮小
次のコマンドは、米国英語(en_US)言語の静的コンテンツをデプロイし、Commerceで提供されるLuma テーマを除外し、HTML ファイルを縮小しません。
bin/magento setup:static-content:deploy en_US --exclude-theme Magento/luma --no-html-minify
出力サンプル:
Requested languages: en_US
Requested areas: frontend, adminhtml
Requested themes: Magento/blank, Magento/backend
=== frontend -> Magento/blank -> en_US ===
=== adminhtml -> Magento/backend -> en_US ===
...........................................................
... more ...
Successful: 2055 files; errors: 0
---
New version of deployed files: 1466710645
............
Successful: 1993 files; errors: 0
---
次のコマンドは、標準のデプロイメント戦略を使用して、4つのジョブを含むJavaScriptのみをデプロイします。
bin/magento setup:static-content:deploy -s standard --no-misc --no-html --no-fonts --no-images --no-less --no-css -j 4
次のコマンドは、3つのジョブとクイックデプロイメント戦略でCSSとLESSのみをデプロイします。
bin/magento setup:static-content:deploy -s quick --no-misc --no-html --no-fonts --no-images --no-javascript -j 3
1つのテーマと1つの領域の静的ビューファイルの生成
次のコマンドは、すべての言語の静的ビューファイル(フロントエンド領域のみ、Commerce Luma テーマのみ)を生成します。フォントは生成されません。
bin/magento setup:static-content:deploy --area frontend --no-fonts --theme Magento/luma
出力サンプル:
Requested languages: en_US
Requested areas: frontend
Requested themes: Magento/luma
=== frontend -> Magento/luma -> en_US ===
...........................................................
... more ...
........................................................................
Successful: 2092 files; errors: 0
---
New version of deployed files: 1466711110
Commerceをインストールせずに静的ビューファイルをデプロイする
機密性の高い実稼動マシン上のビルドプロセスを回避するために、デプロイメントプロセスを実稼動以外の個別の環境で実行する場合があります。
これを行うには、次の手順を実行します。
- 実稼動システムから設定をエクスポートするには、
bin/magento app:config:dumpを実行します。 - 書き出されたファイルを実稼動以外のコードベースにコピーします。
- 静的ビューファイルをデプロイ:
bin/magento setup:static-content:deploy
静的表示ファイルのデプロイメントツールのトラブルシューティング
Commerce ソフトウェアを最初にインストールします。インストールしない場合は、静的ビューファイルのデプロイメントツールを実行できません。
現象:静的ビューファイルのデプロイメントツールを実行すると、次のエラーが表示されます。
ERROR: You need to install the Commerce application before running this utility.
解決策:
次の手順を使用します。
- コマンドライン を使用してCommerce ソフトウェアをインストールします。
- アプリケーションサーバーにファイルシステム所有者としてログインするか、 ファイル所有者としてに切り替えます。
.htaccessファイルを除く<app_root>/pub/staticディレクトリの内容を削除します。 このファイルは削除しないでください。- 静的ビューファイルをデプロイ:
bin/magento setup:static-content:deploy
静的コンテンツ展開ツールをカスタマイズする開発者向けのヒント
静的コンテンツデプロイメントツールのカスタム実装を作成する場合は、クライアントで使用可能なファイルに対するアトミックファイルの書き込みのみを使用します。 非アトミックファイルの書き込みを使用する場合、それらのファイルは部分的なコンテンツを持つクライアントに読み込まれる可能性があります。
これをアトミック化するオプションの1つは、一時ディレクトリに保存されているファイルに書き込み、書き込みが終わった後に、それらをコピーしたり、宛先ディレクトリ(クライアントに読み込まれる場所)に移動したりすることです。 ファイルへの書き込みについて詳しくは、php fwriteを参照してください。