静的表示ファイルのデプロイ
static view files deployment コマンドを使用すると、Commerce ソフトウェアが 実稼動モードに設定されている場合に、Commerce ファイルシステムに静的ファイルを書き込むことができます。
静的ビューファイル という用語は、以下を指します。
- 「静的」とは、サイトに対してキャッシュできることを意味します(つまり、ファイルは動的に生成されません)。 例としては、LESS から生成された画像や CSS があります。
- 「View」はプレゼンテーションレイヤー(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-bash 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.
解決策:
次の手順を使用します。
静的コンテンツ展開ツールをカスタマイズする開発者向けのヒント
静的コンテンツ展開ツールのカスタム実装を作成する場合は、クライアントで使用可能にするファイルに対してのみアトミックファイル書き込みを使用します。 非アトミック ファイル書き込みを使用する場合、これらのファイルは、部分的なコンテンツを含むクライアントに読み込まれる可能性があります。
アトミックにするためのオプションの 1 つは、一時ディレクトリに格納されたファイルに書き込み、書き込みが終了した後に(ファイルがクライアントに読み込まれた場所から)宛先ディレクトリにコピーまたは移動することです。 ファイルへの書き込みについて詳しくは、php fwrite を参照してください。