Làm thế nào để buộc tái tạo các mẫu Twig?


8

Twig tạo các lớp cho các mẫu của nó. Các lớp này được lưu trữ hiệu quả bằng cách ghi vào đĩa.

Nói chung, có lẽ người ta không cần bận tâm đến các chi tiết về cách xử lý các mẫu twig, nhưng có thể có trường hợp khi các mẫu Twig phải được tạo lại theo cách thủ công. (Tương tự như nhu cầu về mô đun xây dựng lại Registry trong D7)

Nếu nó có liên quan, tôi đang hỏi vì tôi bị mắc một lỗi giống như thế này:

Lỗi nghiêm trọng: Class '__TwigTemplate_ddad913164239ac659c2bca09b3a49a5' không tìm thấy trong core / lib / Drupal / Core / Template / TwigEn Môi.php trên dòng 107

Câu trả lời:


6

Không chắc chắn lý do tại sao bạn nhận được lỗi cụ thể đó, nhưng hãy xem drupal_flush_all_caches (), trong đó

PhpStorageFactory::get('twig')->deleteAll();

Điều đó nói rằng, tôi không chắc liệu điều này có giải quyết được vấn đề của bạn không, vì tôi chưa bao giờ thấy lỗi đó, không chắc chắn làm thế nào nó có thể mong đợi một lớp học không có ở đó.


Thật thú vị khi bạn nói rằng bạn chưa bao giờ nhìn thấy nó, như tôi đã từng nhìn thấy nó trước đây. Sau đó, tôi chỉ cần cài đặt lại, và nó hoạt động. Bây giờ thậm chí không giúp được gì.
Letharion

2
Trong trường hợp này, điều này hóa ra là quyền sở hữu xấu của tệp cài đặt ... Cảm ơn thông báo lỗi hữu ích Drupal;)
Letharion

1
Trong trường hợp của tôi, đó là quyền của thư mục tệp công khai được đặt chính xác. Tôi đã cài đặt trang web bằng drush, trong môi trường cục bộ của tôi là một người dùng khác với người dùng máy chủ web. Các giải pháp là để điều chỉnh các quyền thư mục.
batigolix

1
Qua drush:drush ev '\Drupal\Core\PhpStorage\PhpStorageFactory::get("twig")->deleteAll();'
Tim

1

Tôi đã thấy lỗi Twig này trong nhật ký lỗi của mình, khi cố gắng truy cập trang web Drupal 8.x sau khi nó được cài đặt với drush với drush si --db-url=mysql://root:root@localhost/mysite -y. Vì vậy, để khắc phục sự cố, một lần nữa với drush, chỉ cần xóa bộ đệm:

drush cr all 

Ngoài ra, sau này, nếu trang web Drupal 8.x mới của bạn dường như không có bất kỳ kiểu CSS nào, thì điều này có thể là do người dùng apache / httpd không có quyền ghi vào các trang web / mặc định / tệp.

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.