Tôi đang sử dụng Rails 3.2.13 và Đường dẫn tài sản Rails. Tôi muốn sử dụng đường ống Asset Pipeline vì vậy tôi có thể sử dụng SASS và CoffeeScript và ERB cho tài sản của mình và có Pipeline tự động biên dịch chúng, vì vậy tôi không thể tắt đường ống trong quá trình phát triển. Tôi không biên dịch trước tài sản trong quá trình phát triển bao giờ và thậm chí không có thư mục public/assets/
.Vô hiệu hóa bộ nhớ đệm tài sản Sprockets trong quá trình phát triển
Tuy nhiên, khi tôi thay đổi một tập tin bao gồm, chẳng hạn như vào một tập tin _partial.html.erb
được bao gồm (render) trong một file layout.html.erb
, mà không thay đổi các tập tin làm bao gồm cả bản thân (trong ví dụ này layout.html.erb
), Bánh răng doesn' t phát hiện sự thay đổi và làm mất hiệu lực bộ nhớ cache, vì vậy tôi tiếp tục nhận được cùng một tập tin cũ. Khi tôi làm điều này trong phát triển tích cực, tôi muốn vô hiệu hóa bất kỳ bộ nhớ đệm nào của tài sản để tôi có thể nhận được các thay đổi trên mọi yêu cầu nhưng tôi không thể tìm ra cách thực hiện việc này. Tôi đã đặt tất cả những điều sau đây trong development.rb
tôi:
config.action_controller.perform_caching = false
config.action_dispatch.rack_cache = nil
config.middleware.delete Rack::Cache
config.assets.debug = true
config.assets.compress = false
config.cache_classes = false
Tuy nhiên, ngay cả với điều này, tập tin hiển thị dưới tmp/cache/assets/
và tmp/cache/sass/
và những thay đổi không có sẵn trên các yêu cầu trong tương lai. Ngay bây giờ tôi phải tự xóa các thư mục đó mỗi lần tôi muốn thấy thay đổi.
Thật không may, toàn bộ nội dung của phần How Caching Works của Hướng dẫn ROR cho đường ống Asset là:
Bánh răng sử dụng các cửa hàng bộ nhớ cache mặc định Rails để tài sản trong bộ nhớ cache phát triển và sản xuất.
TODO: Thêm thông tin thêm về cách thay đổi cửa hàng mặc định.
Vì vậy, làm cách nào tôi có thể lấy Sprockets để biên dịch nội dung theo yêu cầu nhưng không lưu vào bộ nhớ cache kết quả?
Đó là hoàn toàn xa lạ. :-) Rất vui khi bạn làm việc đó ... –
Điều này đã hoàn toàn giết chết tôi phải bật và tắt bộ nhớ cache lưu trữ tệp khi cố gắng kiểm tra bộ nhớ đệm của hành động. (không có bộ nhớ đệm thực tế). Cảm ơn bạn. – CrazyVipa
Điều này không hoạt động – Benj