問題タブ [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.
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
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']
これは、ファイルの文字列名のみを返します (存在する場合)。ビューに出力できるように、ファイルの本文を取得するにはどうすればよいですか?
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 に連鎖しない非常に明白な何かが欠けているように感じます。
ruby-on-rails - Sprockets エラー Sprockets::NotImplementedError: カスタム asset_path ヘルパーが実装されていません
アセットをローカルでプリコンパイルしようとすると、次のようになります
なぜこれが起こっているのか、私の人生では理解できません-対処方法としての提案は大歓迎です!
アップデート
次のように初期化子を追加した場合にのみ、プリコンパイルできます。
ただし、そうすると、ステージング環境にプッシュすると、Bootstrap のグリフィコンのパスが空になり、レンダリングされません。
更新 2
イニシャライザを以下のように変更すると、グリピコンのプリコンパイル ブートストラップ アセットにパスが取得されますが、それはプリコンパイルされた Glyphicon ファイルではなく、コンパイルされていないアセット パスです。
アセット/スプロケットの宝石に関連する私の gemfile.lock は次のとおりです。
sprockets - レールからターボリンクを完全に無効にする方法
私はかなりの数の投稿とターボリンクのドキュメントに目を通しましたが、まだ完全には理解していないと思います。Rails 5 アプリケーションでターボリンクを完全にオフにしようとしています。これが私がそれについて行った方法です
- 削除されました
gem 'trubolinks'
//=require turbolinks
application.js からのすべての出現を削除しました- から削除さ
data-turbolinks-track
れstylesheet_link_tag
、javascript_include_tag
application.html.erb は次のようになります。
application.js ファイル:
およびapplication.css
data-turbolinks=false
body タグを使用すると、このレイアウトのすべてのページで無効にするのに役立つはずだと考えていました。しかし、それは役に立ちませんでした。ページはエラーでロードできません
ホームページのこの行で
<%= image_tag("pages/home/xyz_logo.png", class: "img-responsive", alt: "Customer") %>
スタック トレースを見ると、ActionView は常にターボリンクに依存しています。
スプロケットがまだターボリンク js を予期しているか、image_tag URL がそれを予期しているようです。data: { turbolinks: false }
すべてのリンクや画像にa を追加したくありません。これを機能させる方法は?
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
(はい、実際には本番環境でアセットをプリコンパイルしています)。または、これらのスプロケット ファイルのいずれかが存在することは、問題であり、修正する必要があることを示していますか?
私の質問は、フラグを設定し、ステージングにプッシュし、クリックする以外に、不足しているアセットを最も簡単に見つけるにはどうすればよいかということだと思います。