タグ付けされた質問 「sprockets」

29
Rails 3.1を使用して、「ページ固有」のJavaScriptコードをどこに配置しますか?
私の理解では、JavaScriptはすべて1つのファイルにマージされます。Railsは//= require_tree .、application.jsマニフェストファイルの最後に追加すると、デフォルトでこれを行います。 これは本当の命の恩人のように聞こえますが、ページ固有のJavaScriptコードについて少し心配しています。このコードはすべてのページで実行されますか?最後に必要なのは、すべてのオブジェクトが1ページでのみ必要なときに、すべてのオブジェクトをインスタンス化することです。 また、コードが衝突する可能性もありませんか? あるいはscript、ページのJavaScriptコードを実行するメソッドを呼び出すだけの小さなタグをページの下部に配置しますか? その後、require.jsは必要なくなりましたか? ありがとう 編集:私はすべての答えに感謝しています...そして私は彼らが本当に問題になっているとは思いません。それらのいくつかはスタイリングに関するものであり、関連しているようには見えません...そして他の人はjavascript_include_tag私が存在することを知っていると述べています...各ページの下部で個々のJavaScriptをロードするのではなく、JavaScriptを1つのファイルに読み込みます。 私が思いつくことができる最善の解決策は、特定の機能divをidsまたはclasses でタグにラップすることです。JavaScriptコードでは、idまたはclassがページ上にあるかどうかを確認し、ページ上にある場合は、それに関連付けられているJavaScriptコードを実行します。このように、動的要素がページ上にない場合、JavaScriptコードはapplication.js、Sprocketsによってパッケージ化された巨大なファイルに含まれていても実行されません。 私の上記のソリューションには、100ページのうち8ページに検索ボックスが含まれている場合、その8ページのみで実行されるという利点があります。また、サイトの8ページに同じコードを含める必要はありません。実際、サイトに手動のスクリプトタグを含める必要はもう二度とありません。 これが私の質問に対する実際の答えだと思います。

14
Ruby on Rails 3.1でアセットパイプライン(スプロケット)メッセージのロギングを無効にするにはどうすればよいですか?
Ruby on Rails 3.1(RC1)のデフォルトでは、スプロケットは(dev)ログで非常に冗長になる傾向があります。 Started GET "/assets/application.css" for 127.0.0.1 at 2011-06-10 17:30:45 -0400 Compiled app/assets/stylesheets/application.css.scss (5ms) (pid 6303) Started GET "/assets/application.js" for 127.0.0.1 at 2011-06-10 17:30:45 -0400 Compiled app/assets/stylesheets/default.css.scss (15ms) (pid 6303) ... Started GET "/assets/default/header_bg.gif" for 127.0.0.1 at 2011-06-10 17:30:45 -0400 Served asset /default/header_logo.gif - 304 Not Modified (7ms) …

3
Rails 3.1アセットパイプラインを使用して特定のCSSを条件付きで使用する
Rails 3.1.rc5を使用して最初のソロRailsアプリを作成しているところです。私の問題は、サイトにさまざまなCSSファイルを条件付きでレンダリングさせたいことです。私はBlueprint CSSを使用しており、screen.cssほとんどのprint.css場合、印刷時とie.cssInternet Explorerからサイトにアクセスするときのみ、スプロケット/レールをレンダリングしようとしています。 残念ながら、マニフェストのデフォルトの*= require_treeコマンドにはapplication.css、assets/stylesheetsディレクトリ内のすべてが含まれているため、CSSが不快になってしまいます。私の現在の回避策は、すべてを個別に指定する一種のブルートフォースメソッドです。 application.css: *= require_self *= require home.css ... *= require blueprint/screen.css 私のスタイルシートの部分(haml)では: <!--[if lt IE 9] <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> ![endif]--> = stylesheet_link_tag "application" = stylesheet_link_tag 'blueprint/print', media: 'print' <!--[if lt IE8]] = stylesheet_link_tag 'blueprint/ie' ![endif]--> = javascript_include_tag "application" これは機能しますが、特にきれいではありません。私はこれまでに数時間の検索を行ってきましたが、見逃した簡単な方法があることを願っています。特定のディレクトリを(サブディレクトリを含めずに)選択的にレンダリングすることさえできれば、プロセス全体の柔軟性が大幅に低下します。 ありがとう!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.