2011-07-27 4 views
1

Ryan Batesのniftyレイアウトを使用していて、次のコードのレイアウトヘルパーが含まれています。Rails:このメソッドを使用するときにcssとjsファイルをキャッシュする方法

私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を追加することができます

しかし、私が直面している問題は、これらの追加のCSSまたはjsファイルが:cache => trueでキャッシュされません。

これを解決する方法はありますか?

基本的には、小さなページを1つの小さなCSSファイルにして、それを呼び出すときに1つの大きなファイルを提供したいと思います。

答えて

0

これについてネットで掘り下げましたか?

小規模の小さなファイルを作成する場合の長所と短所があります。だから陪審員はまだ出ている。

1つのサイトでは、小さな小さなファイルは読みやすさを助けて使いやすくなりましたが、いくつかのプログラミング言語を使用してすべてのcssファイルとサーバーを1つにまとめると述べています。

これはあなたが好む方法を開発することができますが、ユーザーはファイルを一度ダウンロードするだけで、新しいファイルごとに呼び出す必要はありません。

このアプローチをとると、各ファイルを分割してモデル名と照合するのが最善の解決策です。 application.cssには、すべてのページに共通のcssがあります。ここで、modelname.cssファイルには、そのモデルに固有の項目が含まれています。

次にapplication.html.erbでは、そのような呼び出しを行います。

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

これは、すべてのCSSファイルを結合して1つとして配信します。

0

は動作しませ

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

を使用してのだろうか?

javascript_include_tagのドキュメントhttp://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html#method-i-stylesheet_link_tagに行ってください。

+0

レイアウトヘルパーとapplication.html.erbの元の呼び出しを使用すると、2つの異なる呼び出しが行われるため、これは機能しません。 2つの異なるCSSファイルを呼び出す。 –

関連する問題