Điểm:0

Varnish và khối tùy chỉnh

lá cờ eg

Tôi muốn định cấu hình véc ni trên trang web đa ngôn ngữ drupal 8 của mình và tôi có một khối xuất hiện trên trang có đường dẫn là /my-test . Vì vậy, trong tiếng Pháp, url sẽ như thế này: /fr/my-test trong khi bằng tiếng Anh /my-test. Trong khối này, tôi chỉ cần sử dụng:

$lang = \Drupal::languageManager()->getCurrentLanguage()->getId(); để phát hiện ngôn ngữ và sau đó hiển thị tin tức tùy thuộc vào ngôn ngữ này. vì vậy khi url là /my-test > ngôn ngữ là tiếng anh (mặc định)> khối hiển thị tin tức liên quan đến thế giới. khi url là /fr/my-test > ngôn ngữ là tiếng Pháp > khối hiển thị tin tức liên quan đến Pháp.

Câu hỏi của tôi là, nếu véc ni được sử dụng và các trang như /my-test được lưu vào bộ đệm. Nếu ở vị trí đầu tiên, một người dùng nhập /my-test và khối hiển thị tin tức về thế giới thì sau đó, một người dùng khác truy cập /my-test/fr . Khối này có hiển thị tin tức về thế giới (vì trang được lưu trong bộ nhớ cache) mặc dù có /fr trong url không? hay nó sẽ hiển thị đúng nội dung (tin tức liên quan đến Pháp)? tôi cho rằng $lang phát hiện ngôn ngữ từ tiền tố url không phải từ trình duyệt của người dùng.

lá cờ cn
Varnish thường được định cấu hình để lưu vào bộ đệm theo URL. URL khác nhau, mục nhập bộ đệm khác nhau.
Jaypan avatar
lá cờ de
Bạn muốn xem Bối cảnh bộ đệm (https://www.drupal.org/docs/drupal-apis/cache-api/cache-contexts). Tôi tin rằng Drupal đẩy những thứ này ra Varnish trong tiêu đề trang, để Varnish sẽ thay đổi bộ đệm cho phù hợp.
Mira chalak avatar
lá cờ eg
@Jaypan Vì vậy, tôi cho rằng khối sẽ hiển thị đúng sự kiện nội dung mặc dù trong liên kết bạn đã gửi LanguageInterface được đề cập thay vì languageManager ..
Mira chalak avatar
lá cờ eg
@Clive Tôi cũng đang sử dụng `$active_id = \Drupal::service('domain.negotiator')->getActiveId();` trong cùng mã khối này và tôi cũng có nghi ngờ tương tự về biểu thức này, vì vậy nhờ câu trả lời của bạn mà tôi biết rằng $active_id sẽ không giống nhau đối với cả hai người dùng vì URL khác nhau :)
4uk4 avatar
lá cờ cn
Nhận xét @Clive là chính xác. Varnish không thể lưu trữ `/my-test` nếu bạn đã bật tính năng phát hiện trình duyệt.Vì vậy, bạn cũng cần thêm tiền tố đường dẫn cho ngôn ngữ mặc định, sau đó chuyển hướng đến ngôn ngữ đó. Trên trang được chuyển hướng, bạn có thể sử dụng véc ni.
4uk4 avatar
lá cờ cn
Tôi cho rằng bạn đã đăng câu hỏi này mà chưa đăng ký https://drupal.stackexchange.com/questions/307459/varnish-in-multilingual-site.
Mira chalak avatar
lá cờ eg
Cảm ơn bạn rất nhiều @4k4. bạn có ý nghĩa gì khi "nếu bạn đã bật tính năng phát hiện trình duyệt"? Làm thế nào tôi có thể kích hoạt nó? Tôi vẫn không thể hiểu phương pháp phát hiện ngôn ngữ là gì. Tôi không nghĩ rằng mình đã bật tính năng phát hiện trình duyệt. bởi vì khi bạn vào trang web của tôi, bạn được yêu cầu chọn một ngôn ngữ và sau đó chúng tôi chuyển hướng bạn đến tiền tố ngôn ngữ này.
4uk4 avatar
lá cờ cn
/admin/config/khu vực/ngôn ngữ/phát hiện
Mira chalak avatar
lá cờ eg
@4k4 Tôi đã bật những thứ này: URL trình xử lý ngôn ngữ đường dẫn quốc gia, URL (tiền tố đường dẫn), ngôn ngữ đã chọn. Trình duyệt bị vô hiệu hóa. vì vậy tôi cho rằng nó tốt

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.