問題タブ [rails-sprockets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
14 に答える
55195 参照

ruby-on-rails - Ruby on Rails 3.1 でアセット パイプライン (スプロケット) メッセージのロギングを無効にするにはどうすればよいですか?

Ruby on Rails 3.1 (RC1) では、スプロケットはデフォルトで (dev) ログで非常に詳細になる傾向があります。

冗長性のレベルを下げるか、完全に無効にしたいと思います。

ActiveRecord SQLステートメントを無音にする設定行をいずれかenvironment.rbまたはdevelopment.rb同様に追加することにより、ロギングの冗長性を無効化または削減するクリーンな方法があると思います。config.active_record.logger = nil

0 投票する
1 に答える
662 参照

ruby-on-rails - Rails スプロケット 3.0 find_asset

以前は 2.xを使用rails-sprocketsしていましたが、電子メール レイアウト テンプレートで以下を使用して、css

Rails.application.assets.find_asset('file').to_s.html_safe

rails-sprocketsただし、これは3.x では機能しなくなり、使用することをお勧めします。

Rails.application.assets_manifest.assets['file.css']

これは、ファイルの文字列名のみを返します (存在する場合)。ビューに出力できるように、ファイルの本文を取得するにはどうすればよいですか?

0 投票する
0 に答える
112 参照

ruby-on-rails - Sprockets 3+ プロセッサーをチェーンする方法は?

私は、いくつかの JavaScript をレンダリングし、それを Sprocket の JST プロセッサに渡す小さな宝石を作成しようとしています。したがって、ファイルは次のようになり、次のfoo.jst.bar方法で呼び出すことができますJST[foo]()

プロセッサ チェーンがどのように発生するのかわかりません。登録された MIME タイプを介して自動的に処理されると思いましたか? JST プロセッサは処理するために登録されているためapplication/javastcript+function( https://github.com/rails/sprockets/blob/master/lib/sprockets.rb#L169を参照)、次のようにプロセッサを登録するだけです。

これは何もしていません。連鎖を忘れて独自のJST名前空間を定義すると、問題なく機能します。JSTProcessor に連鎖しない非常に明白な何かが欠けているように感じます。

0 投票する
3 に答える
801 参照

ruby-on-rails - Sprockets エラー Sprockets::NotImplementedError: カスタム asset_path ヘルパーが実装されていません

アセットをローカルでプリコンパイルしようとすると、次のようになります

なぜこれが起こっているのか、私の人生では理解できません-対処方法としての提案は大歓迎です!

アップデート

次のように初期化子を追加した場合にのみ、プリコンパイルできます。

ただし、そうすると、ステージング環境にプッシュすると、Bootstrap のグリフィコンのパスが空になり、レンダリングされません。

更新 2

イニシャライザを以下のように変更すると、グリピコンのプリコンパイル ブートストラップ アセットにパスが取得されますが、それはプリコンパイルされた Glyphicon ファイルではなく、コンパイルされていないアセット パスです。

アセット/スプロケットの宝石に関連する私の gemfile.lock は次のとおりです。

0 投票する
2 に答える
1176 参照

sprockets - レールからターボリンクを完全に無効にする方法

私はかなりの数の投稿とターボリンクのドキュメントに目を通しましたが、まだ完全には理解していないと思います。Rails 5 アプリケーションでターボリンクを完全にオフにしようとしています。これが私がそれについて行った方法です

  1. 削除されましたgem 'trubolinks'
  2. //=require turbolinksapplication.js からのすべての出現を削除しました
  3. から削除さdata-turbolinks-trackstylesheet_link_tagjavascript_include_tag

application.html.erb は次のようになります。

application.js ファイル:

およびapplication.css

data-turbolinks=falsebody タグを使用すると、このレイアウトのすべてのページで無効にするのに役立つはずだと考えていました。しかし、それは役に立ちませんでした。ページはエラーでロードできません

ホームページのこの行で

<%= image_tag("pages/home/xyz_logo.png", class: "img-responsive", alt: "Customer") %>

スタック トレースを見ると、ActionView は常にターボリンクに依存しています。

スプロケットがまだターボリンク js を予期しているか、image_tag URL がそれを予期しているようです。data: { turbolinks: false }すべてのリンクや画像にa を追加したくありません。これを機能させる方法は?

0 投票する
0 に答える
35 参照

ruby-on-rails - Rails: 本番環境でコンパイルされたアセットを見つける

私はレガシーアプリに取り組んでいますが、それconfig.assets.compileがに設定さtrueれていることがわかりましたproduction.rb

さて、ステージングで徹底的にテストしますが、可能であれば、配列の一部にする必要があるすべてのアセットを見つけたいと思います。precompile

私がしたことは、tmp/cacheディレクトリに移動して周りを見回すことでした:

legacy.jsそして、プリコンパイルから欠落していることを知っていた、期待していたファイルを見つけました。ドメイン名に一致するファイルをアセットのプリコンパイルに追加するだけでよいのでしょうか。それで、本番環境にプッシュしても問題ないはずですか、config.assets.compile = falseそれとも修正するために探す必要がある他の場所/ファイルがありますか。

私はassetsファイルのヒープを見つけました - 次のように:

./assets/D1D/0F0/sprockets%2F663a54e3907dfc958d784233a6dd0e9a

そのコンテンツには画像などへのリンクが含まれていますが、それらのフィンガープリント化されたアセットを見ることができますpublic/assets(はい、実際には本番環境でアセットをプリコンパイルしています)。または、これらのスプロケット ファイルのいずれかが存在することは、問題であり、修正する必要があることを示していますか?

私の質問は、フラグを設定し、ステージングにプッシュし、クリックする以外に、不足しているアセットを最も簡単に見つけるにはどうすればよいかということだと思います。