@watanabeuk
Nhân tiện mình cũng thử qua tiki xem có khác shopee không thì mình cũng phát hiện ra họ render đẩy đủ nội dung HTML rất nhanh.
Mà bên tiki xây dựng trên Reactjs. Nên khả năng cao họ sử dụng Server-side-rendering nha bạn.
Chào @watanabeuk
Mình đã thử kiểm tra trang sản phẩm của Shopee và muốn giải thích với bạn như sau:
Bởi vì việc browser nhận về 1 trang web sẽ load đầy đủ các tài nguyên html, css, js đã được render sẵn. Theo như mình quan sát source view của trang shoppe render ra thì ko thấy có sự xuất hiện của html render ra nội dung.
Mà shoppe đang chạy SEO rất tốt. Thì có nghĩa là người dùng đang nhận dc 1 phiên bản SPA.
Còn bọ google đang nhận được bản rendering đầy đủ html được điều hướng riêng.
Shopee là 1 trang web có nội dung động, cập nhật liên tục lên rất có khả năng họ sẽ sử dụng dynamic rendering bởi vì đang tạo ra 2 điều hướng khác nhau giữa người dùng và bot. Việc sử dụng pre-rendering cũng có 2 điều hướng như vậy nhưng do thời gian cached sẽ ko phù hợp với shopee.
Vì mình nghĩ pre-rendering chỉ phù hợp vs trang blog, tin tức, có ít cập nhật thời gian thực.
Còn với server-side-rendering thì người dùng sẽ nhận dc mã html nội dung đầy đủ.
Nên mình kết luận là Shoppe sử dụng giải pháp dynamic rendering ( 75% ).
Một nền tảng lớn ẩn chứa nhiều kiến trúc công nghệ độc quyền nên mình ko thể khẳng định chắc chắn về cách họ xây dựng công nghệ bên trong. dc.
Sau đó ở docker-compose.yml e chỉ mount volumes file testB, sau đó chạy và thử exec vào thì e sẽ không thấy file A do đã được ignore từ trước
A hiểu vì sao e nghĩ như vậy. Vì bây giờ e đang mount volumescả folder bên ngoài nên toàn bộ file bên ngoài sẽ có trong container lúc chạy, do đó e không thấy chúng được ignore.
Vậy nên là dockerignore vẫn hoạt động bình thường nhé, chẳng qua là do việc e mount volumes đã "ghi đè" nó dẫn tới việc các file vẫn còn ở đó dù đã ignore
lỗi này theo như e thấy : vấn đề là user trong container hiện tại đang là www-data mà permission của /var/www/html đang là drwxr-xr-x với root => chạy lệnh composer install => tạo mới thư mục vendor vs role www-data sẽ bị fail , nhưng e k biết cấp quyền cho thư mục /var/www/html ntn
e muốn hỏi là sau khi e buil Image xong thì có 2 stage là build-stage và production-stage, sau đó khai báo Image này trong service app và run docker-compose up => docker-compose exec app sh sau khi sh đc vào trong mt của docker thì e k thấy thư mục /app của build-stage đâu . Vì sao anh nhỉ ?
THẢO LUẬN
@watanabeuk Nhân tiện mình cũng thử qua tiki xem có khác shopee không thì mình cũng phát hiện ra họ render đẩy đủ nội dung HTML rất nhanh. Mà bên tiki xây dựng trên Reactjs. Nên khả năng cao họ sử dụng Server-side-rendering nha bạn.
Chào @watanabeuk Mình đã thử kiểm tra trang sản phẩm của Shopee và muốn giải thích với bạn như sau:
Bởi vì việc browser nhận về 1 trang web sẽ load đầy đủ các tài nguyên html, css, js đã được render sẵn. Theo như mình quan sát source view của trang shoppe render ra thì ko thấy có sự xuất hiện của html render ra nội dung.
Mà shoppe đang chạy SEO rất tốt. Thì có nghĩa là người dùng đang nhận dc 1 phiên bản SPA.
Còn bọ google đang nhận được bản rendering đầy đủ html được điều hướng riêng.
Shopee là 1 trang web có nội dung động, cập nhật liên tục lên rất có khả năng họ sẽ sử dụng dynamic rendering bởi vì đang tạo ra 2 điều hướng khác nhau giữa người dùng và bot. Việc sử dụng pre-rendering cũng có 2 điều hướng như vậy nhưng do thời gian cached sẽ ko phù hợp với shopee.
Vì mình nghĩ pre-rendering chỉ phù hợp vs trang blog, tin tức, có ít cập nhật thời gian thực.
Còn với server-side-rendering thì người dùng sẽ nhận dc mã html nội dung đầy đủ.
Nên mình kết luận là Shoppe sử dụng giải pháp dynamic rendering ( 75% ).
Một nền tảng lớn ẩn chứa nhiều kiến trúc công nghệ độc quyền nên mình ko thể khẳng định chắc chắn về cách họ xây dựng công nghệ bên trong.
dc.
e cũng hiểu í anh ns rồi
, e cảm ơn nhé
Vẫn hoạt động bình thường e nhé
.
1 ví dụ cụ thể hơn chứng minh điều này:
.dockerignoree ignore 2 filetestAvàtestB.docker-compose.ymle chỉ mountvolumesfiletestB, sau đó chạy và thửexecvào thì e sẽ không thấy file A do đã được ignore từ trướcA hiểu vì sao e nghĩ như vậy. Vì bây giờ e đang mount
volumescả folder bên ngoài nên toàn bộ file bên ngoài sẽ có trong container lúc chạy, do đó e không thấy chúng được ignore.Vậy nên là
dockerignorevẫn hoạt động bình thường nhé, chẳng qua là do việc e mountvolumesđã "ghi đè" nó dẫn tới việc các file vẫn còn ở đó dù đã ignorechính nó

đọc comment bài này thú vị ghê , e có 1 í nhỏ là
.dockerignoresẽ k hoạt động nếu chúng ta sử dụngvolumesđúng k anh? e test thì thấy vậyCảm ơn bài viết của bạn. Ở Api store tại sao mình gửi lên 2 params name, price như b mà bị báo là undefined nhỉ?
tức là khi e chạy
docker-compose upthì sẽ kết quả cuối cùng sẽ là ở stage cuối cùng, những stage còn lại sẽ bị xóa ạlỗi này theo như e thấy : vấn đề là user trong container hiện tại đang là
www-datamà permission của/var/www/htmlđang làdrwxr-xr-xvới root => chạy lệnh composer install => tạo mới thư mụcvendorvs rolewww-datasẽ bị fail , nhưng e k biết cấp quyền cho thư mục/var/www/htmlntnbuild-stageta sử dụng folder/appđể làm những thứ ta muốn (npm install, sau đó build) mục đích là lấy folder build cuối cùng - folderdist.production-stage, và copy lấy nội dung của folder/app/dist/appbây giờ không có ởproduction-stagenhé e.docker-compose exec app shtức là e đang ởproduction-stage(stage cuối cùng) và code được lưu ở/usr/share/nginx/htmlđể tag BUG cho nó gây ấn tượng cao nên mình không thể bị miss được cụ ạ =))
Rất nhiều thành công của Vue là ở sự đơn giản trong việc tạo ra các component.Like cho pikachu
Xin info bạn nữ
Rất hay. 1like
e muốn hỏi là sau khi e buil Image xong thì có 2 stage là
build-stagevàproduction-stage, sau đó khai báo Image này trong service app và rundocker-compose up=>docker-compose exec app shsau khi sh đc vào trong mt của docker thì e k thấy thư mục/appcủa build-stage đâu . Vì sao anh nhỉ ?cám ơn e nhé, a đã update lại đoạn đó nhé
thank bạn ^^
chỗ này mình type bị ngược rồi, để mình sửa lại, thank bạn ^^
căn giữa chữ, phần tử div và căn giữa phần tử image có chút khác nhau
nếu mà có thêm bài về căn chỉnh hình ảnh thì tốt quá (clap2)