Макеты в общедоступном каталоге в Sinatra (кэширование файлов с использованием того же макета) - PullRequest
0 голосов
/ 02 января 2011

Я хочу разместить файлы в общедоступном каталоге, но я хочу дать им макет, потому что многие файлы будут иметь одинаковый макет. Это возможно? Я хочу сделать это, потому что я хочу, чтобы они обслуживались быстрее, без визуализации каждый раз.

Ответы [ 2 ]

2 голосов
/ 02 января 2011

Проверьте, установлен ли на вашем хосте Varnish Cache, и в Sinatra вы можете просто отправить заголовок 'cache-control', и ваш сервер приложений будет поражен только один раз для запроса:

get '/rendered_page/:which_page' do 
  response.headers['Cache-Control'] = 'public, max-age=300'
  haml :"pages/#{params[:which_page]"
end

А затем поместите ваши страницы в 'views / pages' с расширением .haml.

По первому запросу у Varnish нет записи о том, что следует обслуживать, поэтому ваше приложение генерирует полный HTML. Последующие запросы не доходят до вашего приложения, потому что Varnish отправляет обратно то, что было из предыдущего запроса.

Например, в Heroku по умолчанию доступен лак: http://docs.heroku.com/http-caching

0 голосов
/ 02 января 2011

Для очень быстрой работы вам нужно предварительно сгенерировать вывод с использованием макета и представлений и сохранить их в виде статических файлов в общедоступном каталоге.Например, если вы используете Haml в качестве языка шаблонов, он имеет версию для командной строки, которая создает вывод HTML.

Альтернативно:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...