Rails: как кешировать css и js файлы при использовании этого метода - PullRequest
1 голос
/ 27 июля 2011

Я использую отличный макет от Райана Бейтса, который включает помощника по макету со следующим кодом.

в моем application.html.erb

<%= stylesheet_link_tag "application", :cache => true %>
<%= javascript_include_tag :defaults, :cache => true %>
<%= yield(:head) %>

Тогда в помощнике layout_helper.rb

def stylesheet(*args)
  content_for(:head) { stylesheet_link_tag(*args) }
end
def javascript(*args)
  content_for(:head) { javascript_include_tag(*args) }
end

используя это в моем приложении, я могу добавить css и javascript с любой страницы, просто вызвав

<% javascript "what_ever" %>
<% stylesheet "what_ever" %>

но проблема, с которой я сталкиваюсь, заключается в том, что эти дополнительные файлы css или js не получают: cache => true и, следовательно, не будут кэшироваться.

Есть ли способ решить эту проблему?

По сути, я хочу иметь маленькие маленькие CSS-файлы для каждой страницы и затем обслуживать один большой файл, когда он вызывается.

Ответы [ 2 ]

0 голосов
/ 28 июля 2011

Покопался в сети по этому поводу.

Есть плюсы и минусы для создания маленьких маленьких файлов.Таким образом, жюри все еще отсутствует.

Один сайт сказал, что маленькие маленькие файлы помогают удобочитаемости, так что лучше использовать их, но затем использовать некоторый язык программирования, чтобы объединить все файлы css и сервер их как один.* выгода от этого заключается в том, что вы все еще можете разрабатывать так, как вы предпочитаете, но пользователю нужно всего лишь загрузить файл один раз и не нужно делать вызовы для каждого нового файла.

При таком подходе лучше всегоРешением будет разделить каждый файл и сопоставить его с названием модели.Application.css содержит css, общий для всех страниц, где файл modelname.css содержит элементы, специфичные для этой модели.

, затем в application.html.erb вызов выполняется как таковой.

<%= stylesheet_link_tag :all, :cache => true %>

Это объединит все файлы CSS и послужит им как один.

0 голосов
/ 27 июля 2011

Будет использовать

<% javascript "what_ever", :cache => true %>

не работает?

По документу javascript_include_tag http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#method-i-stylesheet_link_tag.

...