Tôi có thể tắt bộ đệm để triển khai phát triển không?


22

Trên nền tảng phát triển bộ nhớ đệm có thể là một nỗi đau. Tôi có thể tắt nó không? Nó sẽ ảnh hưởng đến bất kỳ mô-đun nào yêu cầu nó?

Câu trả lời:


19

Cài đặt mô-đun phát , thêm tùy chọn xóa bộ nhớ cache cho quản trị viên. Bạn sẽ tìm thấy một khối phát để thêm vào một vùng để xóa bộ nhớ cache nhanh hoặc nếu bạn cài đặt menu quản trị và nhận một menu nhanh ở trên cùng bên trái để xóa các bộ đệm khác nhau trong Drupal.

Nếu bạn thích dòng lệnh cài đặt drush và sử dụng drush cc alllệnh để xóa bộ nhớ cache trang web của bạn. Coi chừng hiện tại cc drush không xóa bộ nhớ cache Varnish nếu áp dụng cho thiết lập của bạn.


9

Nếu bạn đang sử dụng Drupal 7, bạn luôn có thể đặt bộ đệm của mình thành sử dụng DrupalFakeCache, thường chỉ được sử dụng trong quá trình cài đặt. Để đặt điều đó, hãy bỏ đoạn mã sau vào cài đặt của bạn.php:

include_once(DRUPAL_ROOT . '/includes/cache.inc');
include_once(DRUPAL_ROOT . '/includes/cache-install.inc');
$conf['cache_default_class'] = 'DrupalFakeCache';

4

Trang 'Hiệu suất' trong quản trị> cấu hình trang web sẽ cho phép bạn bật / tắt bộ đệm ẩn của các thành phần trang đã chọn. Các mẫu chủ đề thường được lưu trữ liên tục hơn nhưng có thể được xóa trong cùng một trang 'hiệu suất'.

Mô-đun 'Menu quản trị' sẽ cung cấp một lối tắt trong thanh công cụ nếu việc xóa bộ đệm cần được thực hiện thường xuyên hơn - trong quá trình phát triển chủ đề, tôi thấy mình liên tục bị xóa.


4

Theo như tôi biết thì không có bất kỳ mô-đun nào yêu cầu bộ nhớ đệm. Nếu bạn không muốn tắt nó, bạn có thể xóa nó trong Site Settings > Performancephần.

Ngay cả khi bộ đệm bị vô hiệu hóa, Drupal sẽ không nhận ra các tệp mới được thêm vào chủ đề cho đến khi bạn xóa bộ đệm.

Có một số thông tin về các cách khác nhau để xóa bộ nhớ cache tại Drupal.org


4

Ngoài các phương pháp mà Steve H đã đề cập , sử dụng mô-đun Devel mở ra thêm một vài tùy chọn, bao gồm:

  • Xây dựng lại bộ đệm chủ đề trên mỗi lần tải trang (hữu ích nếu bạn là người dùng làm việc trên các tệp mẫu)
  • Một khối sẽ cung cấp quyền truy cập dễ dàng vào chức năng bộ đệm trống và chức năng cài đặt lại.

Với mô-đun Devel và bộ nhớ đệm bị tắt trong Hiệu suất , bộ đệm chính khác duy nhất bạn sẽ gặp phải trong quá trình phát triển thường trình là bộ định tuyến menu, có thể được xây dựng lại bằng cách sử dụng Devel hoặc Menu Menu như Steve đã đề cập.


4

Một điều quan trọng cần lưu ý là nếu bạn có nhiều biểu định kiểu (từ chủ đề của bạn hoặc từ các mô-đun), thì việc tắt tối ưu hóa tệp CSS có khả năng phá vỡ trang web của bạn trong IE.

Mặc dù không thực sự lưu vào bộ đệm, nhưng nó trên cùng một trang cài đặt và thường được sử dụng với bộ đệm.

Nhân tiện, liên kết "Flush all cache" trong mô-đun trình đơn quản trị viên thật tuyệt vời.


Nếu bạn lo lắng về IE, bạn có thể sử dụng drupal.org/project/ie_css_optimizer
factloop

3

Nếu bạn đang sử dụng Drupal 6, mô-đun " Vô hiệu hóa bộ đệm " có thể thuận tiện cho tác vụ đó nếu bạn không muốn [vì một số lý do] để cài đặt các mô-đun nặng hơn như Devel.


2

Câu hỏi cũ, nhưng tôi chỉ thấy nó xuất hiện như một câu hỏi liên quan đến một tìm kiếm tôi đang làm.

Gần như tất cả các phương thức xóa bộ nhớ cache cuối cùng đều gọi drupal_flush_all_caches . Bạn có thể chơi xung quanh với cách gọi này trong các trường hợp khác nhau trong mã của riêng bạn.


2

Số lượng bộ nhớ cache được sử dụng với Drupal đôi khi có thể trở nên điên rồ.

Dưới đây là các phương pháp phổ biến để vô hiệu hóa và xóa bộ nhớ cache Drupal và liên kết với nó.


CÁCH GIẢI QUYẾT:

Lưu ý rằng bạn không thể vô hiệu hóa tất cả các bộ nhớ cache, vì một số trong số chúng được yêu cầu bởi Drupal.

Đây là một phương pháp vô hiệu hóa bộ đệm bằng cách thêm các dòng sau vào tệp cài đặt của bạn:

// Disable caches
$conf['cache'] = 0;
$conf['block_cache'] = 0;
$conf['views_skip_cache'] = TRUE;
$conf['page_compression'] = 0;
$conf['preprocess_css'] = 0;
$conf['preprocess_js'] = 0;

Nếu bạn vô hiệu hóa tất cả bộ nhớ cache, trang web của bạn sẽ rất chậm, do đó, không nên sử dụng cho bất kỳ môi trường nào khác miễn cho máy phát triển của bạn.


KẾT QUẢ

XCache

Xóa bộ nhớ cache XCache nếu được sử dụng:

drush eval "function_exists('xcache_clear_cache') && xcache_clear_cache();"

Hoặc xóa bộ đệm trong XCache trong bảng quản trị (/ xcache-admin) nếu ở trên không hoạt động.

người điều hành điện tử

drush eval "function_exists('accelerator_reset') && accelerator_reset();"

APC

drush eval "function_exists('apc_clear_cache') && apc_clear_cache();"

OPCache

Xóa OPCache PHP nếu sử dụng với PHP> = 5.5

drush eval "function_exists('opcache_reset') && opcache_reset();"

Lưu ý: Lệnh CLI ở trên sẽ không xóa bộ đệm cho Apache, theo: Opcache - Làm sạch bộ đệm trong PHP5.4 trở xuống .

nhớ

Nếu bạn đang sử dụng memcached, bạn nên xóa, khởi động lại hoặc tắt memcached bằng một trong các phương pháp:

Là người dùng (một trong số này):

echo flush_all > /dev/tcp/127.0.0.1/11211
echo flush_all | nc localhost 11211 # Flush Contents Of a Memcached Server

Là một gốc (một trong số này):

/etc/init.d/rc.d/memcached restart
service memcached restart
killall memcached # It's automatically restarted on OSX.

Bạn cũng nên cài đặt mô-đun memcached với dòng sau trong tệp cài đặt của mình:

$conf['cache_backends'][] = 'sites/all/modules/contrib/memcache/memcache.inc';

Vì vậy, bộ nhớ cache Memcached bị xóa trên bộ đệm xóa Drupal tiêu chuẩn.

Véc ni

Nếu bạn đang sử dụng Varnish, bạn nên cài đặt mô-đun Varnish và đặt dòng sau trong tệp cài đặt của mình:

$conf['cache_backends'][] = 'sites/all/modules/contrib/varnish/varnish.cache.inc';

Vì vậy, bộ đệm Varnish sẽ bị xóa cùng nhau trên bộ đệm xóa Drupal.

Ngoài ra, bạn có thể sử dụng curl để xóa các trang theo cách thủ công:

curl -X PURGE -H "Host: domain.com" http://127.0.0.1/node/123

Đọc thêm: Làm thế nào tôi có thể xóa bộ nhớ cache Varnish?

Drupal

Xóa bộ nhớ cache Drupal qua drush:

drush cc all
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v
drush eval 'menu_rebuild();'

Bạn có thể làm tương tự tại / admin / config / Development / Performance, vì đôi khi bộ nhớ cache UI được xóa theo cách tốt hơn so với CLI.


Đây là kịch bản shell hữu ích để xóa tất cả các bộ đệm:

#!/bin/bash
set -o xtrace
echo "SHOW TABLES LIKE 'cache%'" | $(drush sql-connect) | tail -n +2 | xargs -L1 -I% echo "DELETE FROM %;" | $(drush sql-connect) -v
echo 'flush_all' | nc localhost 11211 # Flush Contents Of a Memcached Server
drush eval "function_exists('opcache_reset') && opcache_reset(); function_exists('xcache_clear_cache') && xcache_clear_cache();"
drush eval 'menu_rebuild();'
set -o xtrace -
echo done.

3
OPCache sẽ không hoạt động từ CLI, ví dụ, xem phần giải thích về: stackoverflow.com/questions/17716639/
Kẻ

0

chúng ta có thể sử dụng một trong các phương pháp sau để xóa bộ nhớ cache trong drupal

1.) Chúng tôi chỉ có thể truy cập url your_domain / admin / config / Development / Performance và nhấp vào nút xóa bộ nhớ cache.

2.) Nếu chúng tôi đã cài đặt mô-đun drush, chúng tôi có thể xóa bộ nhớ cache bằng lệnh drush cc all này .

3.) Nếu chúng tôi có quyền truy cập cơ sở dữ liệu, chúng tôi có thể xóa bộ nhớ cache bằng các lệnh sau (không nên truy cập trực tiếp vào cơ sở dữ liệu sản xuất; sử dụng một trong các lựa chọn thay thế nếu trang web của bạn "trực tiếp")

TRUNCATE BẢNG bộ đệm;

TRUNCATE BẢNG cache_block;

BẢNG TRUNCATE BẢNG cache_bootstrap;

TRUNCATE BẢNG cache_field;

TRUNCATE BẢNG cache_filter;

TRUNCATE BẢNG cache_form; // lưu ý sự khác biệt quan trọng từ các bảng cache_ * khác - xem thêm thông tin bên dưới

TRUNCATE BẢNG cache_image;

TRUNCATE BẢNG cache_menu;

TRUNCATE BẢNG cache_page;

TRUNCATE BẢNG cache_path;

TRUNCATE BẢNG cache_token;

TRUNCATE BẢNG cache_update;

4.) Chúng tôi cũng có thể viết truy vấn trong tệp mô-đun db_query của chúng tôi ("XÓA TỪ {cache};");

5.) Chúng tôi có thể sử dụng api drupal để xóa bộ nhớ cache như cache_clear_all ()

6.) Chúng tôi cũng có thể xóa bộ nhớ cache bằng mô-đun devel cài đặt mô-đun devel và kích hoạt "Khối phát triển / khối phát triển" bằng cách này, chúng tôi có thể xóa bộ đệm

Thông tin thêm về cache_form, có mục đích khác với các bảng cache_ khác :

  • tài liệu api cốt lõi cho drupal_flush_all_caches () nói "Không xóa cache_form - việc gửi biểu mẫu đang thực hiện có thể bị hỏng." Mối quan tâm này chỉ áp dụng cho các trang web có người dùng hoạt động và không áp dụng cho các phiên bản phát triển.

  • các phương pháp thủ công khác để xóa bộ nhớ cache được mô tả trong bài đăng này sẽ không ảnh hưởng đến cache_form

  • nếu bạn cần thu nhỏ kích thước của cache_form trên một trang sản xuất, hãy xem kích thước bảng Cache Form là rất lớn

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.