ПредишенСледващото

Преди Rails 3.1, тези функции са добавени от трети страни Ruby библиотеки, като Jammit и венци. Релси 3.1 е интегрирана по подразбиране с Венци, използвайки Action Pack, което е зависимо от хем венци.

Fayloprovod подразбиране в Rails 3.1 е включена. Той може да бъде изключен в конфигурационния / application.rb. ако сложите следния ред при определяне на класа на приложение:

Също fayloprovod може да се деактивира, когато създавате нови приложения, като се пуска опция -skip-зъбни колела.

Вие трябва да използвате по подразбиране стойност за всички нови приложения, ако имате конкретна причина да се избегне fayloprovoda.

Основни характеристики

Първата функция е съединение fayloprovoda ресурси. Това е важно, в средата на производство, тъй като ще се намали броят на молбите необходимите браузъра, за да покажете страницата. Браузърите са ограничени в броя на заявките, които могат да се извършват паралелно, така че по-малко заявки може да означава бързо изтегляне на вашата кандидатура.

Що за етикети и защо те са необходими?

Label - техника, която се занимава зависимостта на името на файла на съдържанието. Когато съдържанието на файла се променят, името на файла също се променя. За статични или рядко актуализирано съдържание осигурява лесен начин да се каже, че двете версии на файла са еднакви, дори ако те са на различни сървъри, или имат различна дата на разположение.

Когато името на файла е уникален и се базира на съдържанието й, нея може да се инсталират навсякъде кеширане (в CDN. Доставчикът на мрежови хардуер или браузър), така че те имат свои собствени копие на съдържанието. Когато съдържанието се променя, етикетът ще се промени. Това ще доведе до факта, че отдалечените клиенти ще поискат ново копие на съдържанието. Тази техника е известна като на кеша.

Техника, използвана Релси за етикети, е да вмъкнете съдържанието хашиш, която обикновено е в края. Например, CSS global.css файл може да се преименува с помощта на MD5 храносмилане нейното съдържание:

Това е стратегията, приета от fayloprovodom релси.

Релси и съща стратегия се базира на добавянето на датата на низа на заявката за всеки ресурс, присъединявайки се с интегрираната помощник. Създадената в изходния код изглежда така:

В стратегията се основава на низа на заявката, имаше някои недостатъци:

  1. Не всички кешовете надеждно кеширани съдържание, когато името на файла се различава само по параметрите на низа на заявката.
    Стив Souders препоръчва. "... за да се избегне заявка низове за кешираните ресурси." Той открива, че в този случай, 5-20% от заявките, които не са кеширани. По-специално, низа на заявката не работи с някои доставяне на съдържание мрежи (CDN) за обявяване на недействителност на кеша.
  2. Името на файла може да бъде различен за различните възли в мулти-сървърни среди.
    По подразбиране, низа на заявката в Rails 2.x се основава на времето се променя файлове. Когато ресурсите са поставени в една група, няма гаранция, че клеймото е една и съща, различни стойности в зависимост от това кой сървър ще се справят с разследването ще бъде използвана като резултат.
  3. Твърде много са прекратили кеш
    При пускането на статични ресурси с всяка нова версия на кода, за Mtime от тези файлове се е променило, принуждавайки всички отдалечени клиенти, за да ги получите обратно, дори ако съдържанието на тези ресурси не се е променило.

Tags определи тези проблеми с избягване на струните на заявката и да се гарантира, че името на файла се основава на съдържанието му.

По подразбиране, етикети са включени за производство и деактивирани за всички други медии. Те могат да бъдат активирани или деактивирани в конфигурацията с помощта config.assets.digest опция.

Подкрепете проекта - споделете линка, благодаря!