タグ付けされた質問 「asset-pipeline」

アセットパイプラインは、JavaScriptおよびCSSアセットを連結および縮小または圧縮するためのフレームワークを提供します。また、これらのアセットを他の言語で作成する機能や、CoffeeScript、Sass、ERBなどのプリプロセッサを追加することもできます。

19
Rails 4:ターボリンクで$(document).ready()を使用する方法
「Rails way」でJSファイルを整理しようとしたときに、Rails 4アプリで問題が発生しました。以前は、さまざまなビューに散らばっていました。それらを別々のファイルに編成し、アセットパイプラインでコンパイルしました。ただし、ターボリンクがオンになっていると、jQueryの「準備完了」イベントが後続のクリックで起動しないことを知りました。初めてページをロードしたときに機能します。ただし、リンクをクリックすると、の内部はready( function($) {実行されません(ページが実際に再度読み込まれないため)。良い説明:ここ。 だから私の質問は:ターボリンクがオンのときにjQueryイベントが正しく機能することを保証する正しい方法は何ですか?スクリプトをRails固有のリスナーでラップしますか?それとも、レールには不必要な魔法があるのでしょうか?特にapplication.jsのようなマニフェストを介して複数のファイルをロードすることに関して、ドキュメントはこれがどのように機能するかについて少し曖昧です。

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) …

12
Railsアセットパイプラインでのフォントの使用
私のScssファイルでいくつかのフォントを次のように構成しています: @font-face { font-family: 'Icomoon'; src: asset-url('icoMoon.eot?#iefix', font) format('embedded-opentype'), asset-url('icoMoon.woff', font) format('woff'), asset-url('icoMoon.ttf', font) format('truetype'), asset-url('icoMoon.svg#Icomoon', font) format('svg'); } 実際のフォントファイルは/ app / assets / fonts /に保存されています config.assets.paths << Rails.root.join("app", "assets", "fonts")application.rbファイルに追加しました コンパイルCSSソースは次のとおりです。 @font-face { font-family: 'Icomoon'; src: url(/assets/icoMoon.eot?#iefix) format("embedded-opentype"), url(/assets/icoMoon.woff) format("woff"), url(/assets/icoMoon.ttf) format("truetype"), url(/assets/icoMoon.svg#Icomoon) format("svg"); } しかし、アプリを実行すると、フォントファイルが見つかりません。ログ: 2012-06-05 23:21:17 +0100配信されたアセット/icoMoon.ttf-404が見つかりません(13ms) …

14
rails 3.1.0 ActionView :: Template :: Error(application.cssはプリコンパイルされていません)
シンプルなページコントローラーを備えた基本的なRailsアプリをインデックス関数で作成し、ページを読み込むと次のようになります。 ActionView::Template::Error (application.css isn't precompiled): 2: <html> 3: <head> 4: <title>Demo</title> 5: <%= stylesheet_link_tag "application" %> 6: <%= javascript_include_tag "application" %> 7: <%= csrf_meta_tags %> 8: </head> app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__43625033_88530400' Gemfile source 'http://rubygems.org' gem 'rails', '3.1.0' # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git' gem 'sqlite3' gem 'execjs' …

7
Railsプロダクションではconfig.assets.compile = trueですが、なぜですか?
デフォルトではではインストールアプリRailsのrails new持つconfig.assets.compile = false生産を。 そして、物事を行う通常の方法はrake assets:precompile、アプリをデプロイする前に実行して、すべてのアセットパイプラインアセットが確実にコンパイルされるようにすることです。 ではconfig.assets.compile = true、本番環境に設定するとどうなりますか? precompileもう走る必要はない。私が信じるのは、アセットが初めてリクエストされたときに、コンパイルされることです。これは初めてのパフォーマンスヒットになります(これを行うには、通常、運用環境でjsランタイムが必要です)。しかし、これらの欠点を除いて、アセットがレイジーコンパイルされた後は、そのアセットへの以降のすべてのアクセスでパフォーマンスヒットは発生しないと思います。アプリのパフォーマンスは、この最初のヒットレイジーコンパイル後のプリコンパイル済みアセットとまったく同じになります。これは本当ですか? 何か足りないものはありますか?config.assets.compile = true本番環境に設定しないその他の理由はありますか?本番環境でJSランタイムを使用していて、実行する必要がない代わりに、アセットへの最初のアクセスでパフォーマンスが低下するというトレードオフを受け入れる意思がある場合precompile、これは理にかなっていますか?

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" これは機能しますが、特にきれいではありません。私はこれまでに数時間の検索を行ってきましたが、見逃した簡単な方法があることを願っています。特定のディレクトリを(サブディレクトリを含めずに)選択的にレンダリングすることさえできれば、プロセス全体の柔軟性が大幅に低下します。 ありがとう!

9
一致するルートはありません[GET] / assets
実稼働環境でテストしようとしているRailsアプリがあります。RAILS_ENV=production rake assets:precompileすべてのアセットを/ public / assetsに生成して実行しました。問題は、私がアプリを起動するRAILS_ENV=production rails s thinと次のようになることです: ActionController::RoutingError (No route matches [GET] "/assets/application-eff78fd67423795a7be3aa21512f0bd2.css"): このファイルはにも存在します/public/assets/application-eff78fd67423795a7be3aa21512f0bd2.css。 なぜ私はこれを手に入れているのRoutingErrorですか?

24
ダウンロードされたフォントのデコードに失敗しました、OTS解析エラー:無効なバージョンタグ+レール4
アセットをプリコンパイルし、アプリケーションをプロダクションモードで実行しています。コンパイル後、インデックスページをロードすると、Chromeコンソールに次の警告が表示されます。 Failed to decode downloaded font: http://localhost:3000/fonts/ionicons.ttf?v=2.0.0 prospects:1 OTS parsing error: invalid version tag Failed to decode downloaded font: http://localhost:3000/fonts/ionicons.woff?v=2.0.0 prospects:1 OTS parsing error: invalid version tag 問題は、四角が表示される代わりにアイコンが読み込まれないことです。 カスタムフォントを使用し、コードは次のとおりです。 @font-face { font-family: 'icomoon'; src: font-url('icomoon.eot'); src: font-url('icomoon.eot?#iefix') format('embedded-opentype'), font-url('icomoon.ttf') format('truetype'), font-url('icomoon.woff') format('woff'), font-url('icomoon.svg#icomoon') format('svg'); font-weight: normal; font-style: normal; } 何が足りないのかわかりません。私はたくさん検索して解決策も試しましたが成功しませんでした。開発モードではうまく機能していますが、プロダクションモードで四角が表示されている理由がわかりません。

18
Rails 4:アセットが本番環境に読み込まれない
アプリを本番環境に配置しようとしていますが、画像とCSSアセットパスが機能していません。 これが私が現在やっていることです: 画像アセットは/app/assets/images/image.jpgにあります スタイルシートは/app/assets/stylesheets/style.cssにあります 私のレイアウトでは、次のようにcssファイルを参照しています。 <%= stylesheet_link_tag "styles", media: "all", "data-turbolinks-track" => true %> ユニコーンを再起動する前に、実行するRAILS_ENV=production bundle exec rake assets:precompileと成功し、public/assetsディレクトリにフィンガープリントされたファイルが表示されます。 私のサイトを閲覧すると、の404 not foundエラーが表示されmysite.com/stylesheets/styles.cssます。 何が悪いのですか? 更新: 私のレイアウトでは、次のようになります: <%= stylesheet_link_tag "bootstrap.min", media: "all", "data-turbolinks-track" => true %> <%= stylesheet_link_tag "styles", media: "all", "data-turbolinks-track" => true %> <%= javascript_include_tag "application", "data-turbolinks-track" => true %> …

13
WindowsでのExecJS :: RuntimeErrorがrubytutorialを追跡しよう
更新: // = require_treeという行を削除するというColinの提案。問題を修正しました。 私はそこにあるすべての提案に従って、私の問題を修正しようとするために2日間以上無駄にしてきました。私はWindowsマシンでhttp://ruby.railstutorial.orgの本をフォローしようとしていますが、私の人生では次の厄介なエラーを乗り越えることができません。 ExecJS::RuntimeError in Static_pages#home Showing C:/Users/.../bootcamp-sample-app/app/views/layouts/application.html.erb where line #6 raised: ["ok","(function() {\n\n\n\n}).call(this);\n"] (in C:/Users/.../bootcamp-sample-app/app/assets/javascripts/sessions.js.coffee) Extracted source (around line #6): 3: <head> 4: <title><%= full_title(yield(:title)) %></title> 5: <%= stylesheet_link_tag "application", media: "all" %> 6: <%= javascript_include_tag "application" %> 7: <%= csrf_meta_tags %> 8: <%= render 'layouts/shim' %> …

6
Rails 4のimage-path、image-url、asset-urlがSCSSファイルで機能しなくなりました
image-urlRails 4では他のものとは別のものを使用することになっていますか?それらは意味をなさないように見える異なる値を返します。私が持っていlogo.pngて/app/assets/images/logo.png、私が次のことをすると、これが私が得るものです: image-url("logo.png") -> url("/images/logo.png") #obviously doesn't work image-path("logo.png") -> "/images/logo.png" asset-url("logo.png") -> url("/logo.png") もちろん、少なくとも/assets前部が必要なので、これらはどれも機能しません。 更新:実際、気づいたのですが、Rails 4で画像にアクセスするにはどうすればよいですか?に画像があり/app/assets/images/logo.pngます。しかし、次のいずれかのURLにアクセスしても、画像が表示されません。 http://localhost:3000/assets/logo.png http://localhost:3000/assets/images/logo.png http://localhost:3000/logo.png http://localhost:3000/images/logo.png 更新2:私が表示できる唯一の方法logo.pngは、それを/app/assets/stylesheetsディレクトリに移動してからプルアップすることです。 http://localhost:3000/assets/logo.png

3
Rails4がGemfileの「アセット」グループのサポートをやめた理由
Rails 3では、アセットパイプラインでアセットを生成するためだけに使用されるgem assetsがGemfileのグループに適切に配置されていました。 ... # Gems used only for assets and not required # in production environments by default. group :assets do gem 'sass-rails' gem 'coffee-rails' gem 'uglifier' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer', :platforms => :ruby end さて、(まだ進行中の)アップグレードドキュメントによると: Rails 4.0はGemfileからアセットグループを削除しました。アップグレードするときは、Gemfileからその行を削除する必要があります。 案の定、RC1で新しいプロジェクトを作成すると、アセット関連のGemがデフォルトでグループ外に含まれるGemfileが生成されます。 source 'https://rubygems.org' # Bundle …

5
Railsの適切なSCSSアセット構造
したがって、app/assets/stylesheets/次のようなディレクトリ構造があります。 |-dialogs |-mixins |---buttons |---gradients |---vendor_support |---widgets |-pages |-structure |-ui_elements 各ディレクトリには、複数のsassパーシャルがあります(通常は* .css.scssですが、1つまたは2つの* .css.scss.erb)。 私は多くのことを想定しているかもしれませんが*= require_tree .、application.cssにあるため、railsはそれらのディレクトリ内のすべてのファイルを自動的にコンパイルする必要がありますよね? 最近、すべての色変数を削除してルートapp/assets/stylesheetsフォルダー(_colors.css.scss)のファイルに配置することにより、これらのファイルを再構築しようとしました。次に、app/assets/stylesheets次のようなファイルをmaster.css.scssというルートフォルダーに作成しました。 // Color Palette @import "colors"; // Mixins @import "mixins/buttons/standard_button"; @import "mixins/gradients/table_header_fade"; @import "mixins/vendor_support/rounded_corners"; @import "mixins/vendor_support/rounded_corners_top"; @import "mixins/vendor_support/box_shadow"; @import "mixins/vendor_support/opacity"; Railsがアセットのコンパイルの順序をどのように処理するかはよくわかりませんが、明らかに私の好みではありません。インポートされている変数またはミックスインがあることを認識しているファイルがないようです。そのため、エラーがスローされ、コンパイルできません。 Undefined variable: "$dialog_divider_color". (in /home/blah/app/assets/stylesheets/dialogs/dialog.css.scss.erb) Undefined mixin 'rounded_corners'. (in /home/blah/app/assets/stylesheets/widgets.css.scss) 変数$dialog_divider_colorは_colors.css.scssで明確に定義されており、_master.css.scss色とすべてのミックスインをインポートしています。しかし、どうやらレールはそのメモを受け取らなかったようです。 これらのエラーを修正する方法はありますか、それともすべての変数定義を個々のファイルに戻し、すべてのミックスインインポートに戻す必要がありますか? 残念ながら、この男はそれが可能だとは思わないようですが、私は彼が間違っていることを望んでいます。どんな考えでも大歓迎です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.