Lợi ích của một thư mục pub trong Magento 2 là gì


11

Có thể tôi chỉ không nhận được nó nhưng nếu các tệp của tôi đã được lưu trong bộ nhớ cache thì việc sử dụng thư mục pub trong Magento 2 sẽ là gì? Dự đoán có giáo dục duy nhất của tôi là việc sử dụng cơ chế dự phòng có thể được giảm bớt phần nào bằng cách có một tập hợp các tệp đã biết cho chủ đề.

Thông qua việc đọc các tài liệu tôi không hiểu rõ về lợi ích mặc dù tôi cảm thấy mình hiểu rất rõ các tệp động, tĩnh và lưu trữ.

Theo tôi hiểu, bộ đệm chỉ đơn giản là một vị trí đã biết của các tài sản khiến tôi đoán rằng thư mục pub là một cơ chế tiêu chuẩn hóa vị trí của các tệp để giảm tài nguyên được sử dụng trên cơ chế dự phòng.


Câu hỏi tuyệt vời, tôi tự hỏi liệu điều bảo mật là lợi ích duy nhất hay nó cũng giúp cải thiện tốc độ
Claudiu Creanga

Câu trả lời:


15

Thư mục pub là một biện pháp bảo mật để chặn truy cập công khai vào tài sản thư mục gốc của bạn, cụ thể là thư mục ứng dụng. Lý do mà index.php cũng nằm trong thư mục gốc được cho là để giải quyết các cá nhân có webhost gây khó khăn hoặc không thể thay đổi webroot của bạn.

Khi sử dụng pub / index.php, thư mục nguồn ứng dụng sẽ không thể truy cập được trong khi có thể là nếu index.php đang được chạy từ thư mục gốc. Cách làm này cũng được thấy trong Symfony và Zend 2.

Bằng cách này, không có cấu hình, mẫu, ứng dụng Magento nào được hiển thị.

Nói chung, kiến ​​thức về kiến ​​trúc liên quan đến pub index.php so với root index.php không cần thiết cho các nhà phát triển frontend trong một nhóm nhưng hiểu những điều cơ bản của nó là điều cần biết.


bạn cần thêm document_root_is_pub = truevào ./app/etc/env.phpnếu gốc của bạn là /pub/- github.com/magento/magento2/pull/9094
Alex Gusev

10

Magento 2 đi kèm với hai tệp index.php trong đó một tệp nằm trong thư mục gốc và một tệp khác nằm trong thư mục / pub. Magento 2 cung cấp để chạy ứng dụng của bạn bằng cách sử dụng bất kỳ một trong các tệp này. Nếu bạn chọn chạy ứng dụng của mình bằng /pub/index.php thì đó là một quyết định đúng đắn cho quan điểm bảo mật vì nó hạn chế truy cập trực tiếp trái phép các tệp ứng dụng.

Lưu ý bên cạnh, bạn nên nhớ rằng /index.phptệp được sử dụng khi chạy ở chế độ nhà phát triển và /pub/index.phpđược sử dụng khi chạy ở chế độ sản xuất


1
Tôi đánh giá cao việc chỉ ra rằng có 2 tệp index.php nhưng lợi ích và việc sử dụng triển khai sử dụng kiến ​​trúc kiểu này là gì, không được giải quyết. Trừ khi, tôi còn thiếu nhiều hơn về chủ đề tôi đã đi trước và trả lời câu hỏi từ việc xem qua các bài báo và tài liệu của Alan Storm, Zend và Symfony.
Brian Ellis

liên quan đến tuyên bố cuối cùng của bạn về dev / prod, bạn có thể xác nhận nơi này được thực hiện không? Tôi không thấy bất cứ điều gì như vậy
Claudiu Creanga

Tôi với @brianellis tại sao nó phải theo cách này? Dường như nó không lừa trình duyệt từ những gì tôi có thể thấy.
ladle3000
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.