Magento 2のpubディレクトリの利点は何ですか


11

多分私はそれを取得していないだけかもしれませんが、私のファイルがすでにキャッシュされている場合、Magento 2のpubディレクトリの使用は何でしょうか?私の唯一の教育的な推測は、テーマの既知のファイルセットを用意することで、フォールバックメカニズムの使用をある程度軽減できることです。

ドキュメントを読んでも、動的、静的、およびキャッシュされたファイルをよく理解しているように感じますが、メリットを明確に理解していません。

私が理解しているように、キャッシュは定義された既知のアセットの場所であり、pubディレクトリはファイルの場所を標準化して、フォールバックメカニズムで使用されるリソースを削減するメカニズムであると推測しました。


すばらしい質問です。セキュリティが唯一の利点であるのか、それとも速度が向上するのでしょうか
Claudiu Creanga

回答:


15

pubディレクトリは、ルートディレクトリのアセット、つまりアプリディレクトリへのパブリックアクセスをブロックするためのセキュリティ対策です。index.phpもルートディレクトリにある理由は、ウェブホストがウェブルートの変更を困難または不可能にしている個人に対処するためと考えられます。

pub / index.phpを利用するとき、index.phpがルートディレクトリから実行されている場合は、アプリのソースフォルダーにアクセスできません。このプラクティスはSymfonyとZend 2でも見られます。

この方法では、Magentoアプリケーション構成、テンプレートなどは公開されません。

一般に、pub index.phpとroot index.phpに関するアーキテクチャの知識は、チームのフロントエンド開発者には必要ありませんが、その基本を理解しておくと役立ちます。


あなたが追加する必要がありdocument_root_is_pub = true、あなたに./app/etc/env.phpあなたのルートである場合/pub/- github.com/magento/magento2/pull/9094
アレックス・グセフ

10

Magento 2には2つのindex.phpファイルが付属しており、1つはルートフォルダー内に、もう1つは/ pubフォルダー内にあります。Magento 2は、このファイルのいずれかを使用してアプリケーションを実行することを提案しています。/pub/index.phpを使用してアプリケーションを実行することを選択した場合、アプリケーションファイルへの不正な直接アクセスを制限するため、セキュリティの観点からは適切な決定です。

補足として、この/index.phpファイルは開発者モードで/pub/index.php実行するときに使用され、本番モードとして実行するときに使用されることに注意してください。


1
2つのindex.phpファイルがあることを指摘して感謝しますが、この型アーキテクチャを使用した実装の利点と使用法については、どちらも対処されていません。私が先に進んで、アランストーム、Zend、およびSymfonyの記事とドキュメントを調べて質問に答えた場合を除いて、私はこのトピックについてさらに詳しく知りません。
ブライアンエリス

dev / prodに関する最後のステートメントについて、これがどこで行われたか確認できますか?そのようなものは何も
見当たり

私は@brianellisと一緒にいるのに、なぜこのようにする必要があるのですか?それは私が見ることができるものからとにかくブラウザをだましていないようです。
ladle3000 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.