2015-01-13 2 views
0

Я прочитал несколько блогов по кешированию HTTP и попытался реализовать его в своем приложении rails и его правильную работу. но проблема в том, что всякий раз, когда я изменяю свой файл шаблона (файл index.erb) напрямую, эти изменения не отображаются в браузере, сервер возвращает мне 304 не измененный ответ. Если я отредактирую любого из моих пользователей из базы данных, тогда только те на веб-странице появляются изменения.Rails 4 Http-кеширование (как истечь кеш при изменении шаблона)

Так что я просто хочу знать, есть ли способ истечения срока действия кеша и отправляет ответ 200 пользователю, когда есть изменения в файле шаблона в кэшировании http.

class UsersController < ApplicationController 
    before_action :set_user, only: [:show, :edit, :update, :destroy] 

    # GET /users 
    # GET /users.json 
    def index 
    @users = User.all 
    fresh_when etag: @users 
    end 
end 
+1

попробуйте посмотреть [bust_rails_etags] (https://github.com/n8/bust_rails_etags) gem – yoavmatchulsky

ответ

1

conditional get ака ETag-поддержка в рельсах довольно просто. он вычисляет etag на основе того, почему вы проходите. Поэтому, если у вас есть какой-то счетчик, который вы увеличиваете при изменении шаблона, кэш-ключ истек, и новая версия будет запрашиваться браузером.

вся задача может быть автоматизирована с использованием git SHA вашего развернутого приложения (или другого ключа SCM). поэтому при каждом развертывании вы перегружаете кеш. этот подход прост и легко отлаживается.

+0

Эй, спасибо за ответ .... :) –

Смежные вопросы