Magento 2中的pub目录有什么好处


11

也许我只是没有得到它,但是如果我的文件已经被缓存了,那么Magento 2中的pub目录的用途是什么?我唯一有根据的猜测是,可以通过拥有一组已知的主题文件来减轻回退机制的使用。

通过阅读文档,尽管我感到自己对动态,静态和缓存文件有很强的把握,但我对这个好处并不清楚。

据我了解,缓存只是资产的已定义的已知位置,这使我猜测pub目录是一种标准化文件位置的机制,以减少回退机制上使用的资源。


一个很大的问题,我想知道安全性是唯一的好处还是它提高了速度
Claudiu Creanga

Answers:


15

pub目录是一种安全措施,目的是阻止公共访问您的根目录资产(即app目录)。可能index.php也位于根目录中的原因被认为是针对那些Web主机使更改Webroot困难或不可能的人。

当使用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带有两个index.php文件,其中一个文件位于根文件夹中,另一个文件位于/ pub文件夹中。Magento 2提供了使用此文件中的任何一个来运行您的应用程序的功能。如果选择使用/pub/index.php运行应用程序,那么从安全角度考虑,这是一个不错的决定,因为它会限制未经授权直接访问应用程序文件。

附带说明一下,最好记住该/index.php文件在以开发人员模式/pub/index.php运行时使用,在以生产模式运行时使用


1
我很高兴地指出有2个index.php文件,但是关于使用这种类型体系结构的实现的好处和用途是什么,都没有解决。除非,否则我将继续深入研究该主题,并通过浏览Alan Storm,Zend和Symfony的文章和文档来回答这个问题。
布莱恩·埃利斯

关于您最近一次关于dev / prod的声明,您可以确认在何处完成吗?我什么都没看到
Claudiu Creanga '16

我和@brianellis在一起,为什么需要这样呢?从我所看到的来看,它似乎并没有欺骗浏览器。
ladle3000 '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.