問題タブ [asset-pipeline]

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 投票する
1 に答える
2877 参照

ruby-on-rails - アセットのプリコンパイル時に出力パスを一時的に変更する方法、Sprockets / Rails アセット パイプライン、3.1.0

リリースされたRails 3.1.0で動作するようにこのコードを更新しようとしています:

Sprockets::Environment#static_root が削除されたので、sprockets の出力ディレクトリを一時的に変更する最善の方法は何ですか?

編集:また、カスタム出力ディレクトリのアセットをクリーンアップできるようにしたいと思います:)

0 投票する
5 に答える
19705 参照

ruby-on-rails - モデルからアセット パイプラインの画像を参照するにはどうすればよいですか?

次のような人物のアバターに URL を返すメソッドを持つモデルがあります。

私は 3.1 にアップグレード中なので、ハードコーディングされた none 画像をアセット パイプラインから参照する必要があります。コントローラーまたはビューでは、 でラップするだけimage_path()ですが、モデルにはそのオプションがありません。画像への正しい URL を生成するにはどうすればよいですか?

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

ruby-on-rails - rails 3.1.0 ActionView::Template::Error (application.css はプリコンパイルされていません)

インデックス機能を備えた単純なページコントローラーを使用して基本的なレールアプリを作成し、ページをロードすると次のようになります。

Gemfile

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

ruby-on-rails - 既存のJammitアセットパイプラインを新しいRails3.1バージョンに移植する必要がありますか?

Railsアプリケーションでアセットのキャッシュ、圧縮、最適化のためにJammitを実装しました。継続的インテグレーションプロセスと完全に統合されており、うまく機能します。そうは言っても、3.1ではSprocketsに基づく新しい正規のアセットパイプラインが導入されています。

Sprocketベースのアプローチには、システムの移植に値する利点がありますか?メリットがなければ、システムの変換に時間をかけたくありません。

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

ruby-on-rails-3.1 - Rails 3.1 asset precompilation - include all javascript files

I want Rails 3.1 to pick up more of my assets for precompilation. In particular, the default matcher for compiling files doesn't add .js files from vendor/assets/javascripts. I can just add the assets to the config.assets.precompile list, but this seems annoying. I don't want to refer to them in the application.js manifest, because I don't want them included in all pages.

In summary, any way to request that all .js files found in vendor/assets/javascripts get precompiled by rake assets:precompile, but without having them included in all pages?

0 投票する
4 に答える
1898 参照

ruby-on-rails - 本番前にレール アセット パイプラインでエラーを検出するにはどうすればよいですか?

私は Rails 3.1 に慣れてきたばかりで、古いプロジェクトを更新し、新しいアセット パイプラインが開発モードと本番モードでどのように動作するかを解明しようとして時間を費やしました。

デフォルトconfig.assets.precompile設定はapplication.cssapplication.jsのみをブレスし、すべてを単一のスタイルシートと単一の JavaScript ファイルとして提供することを意図しています。

明らかに、それが望ましくない状況があるため、その構成変数のリストに項目を追加できます...

本番環境に移行するときにサンドボックス プロジェクトで遭遇した状況は次のとおりです。

  1. 開発中のサイトを閲覧したところ、すべてが機能していることがわかりました。アセットは個別のファイルとしてリンクされ、サイトは正しく表示されました。
  2. サイトをサーバーにアップロードし、本番環境で動作させようとしました。最初のエラーは、「ie.css」 (条件付きスタイルシート) がプリコンパイルされていないというものでした。(私は Safari を使用していましたが、このスタイルシートはダウンロードされませんでしたstylesheet_link_tag。ページをレンダリングする前にヘルパーからエラーが発生しました。)
  3. 実行rake assets:precompileして再試行しました。
  4. 問題のあるアイテムを追加して、config.assets.precompile再試行しました。
  5. 別のアセット エラーに到達するまで、エラーを縁石に蹴り落としました。
  6. 後藤 3.

これに対処する方法がわからなかったので、すべてのアセットを取得し、サイトが本番環境でレンダリングされていると思うまで、何度かぐるぐる回りました。次に、MSIE で試してみたところ、別のエラー 500: "belated_png_fix.js"が条件付きで読み込まれていましたが、それまでは発生しませんでした。

だから私の質問は、試行錯誤や統合テストへの過度の依存以外に、資産パイプラインがスタイルシートまたは JavaScript がプリコンパイル リストに追加されていないことを発見したときに、自分のサイトが爆発しないことをどのように予測できるかということです。 ?

また、スタイルシート アセットが不足している場合に、オンデマンドでコンパイルしたり、アセットが要求されたときに 404 を提供したりするのではなく、ページ全体でエラー 500 が発生する理由にも興味があります。これは「早期に失敗する」ための意図的な設計ですか?

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

ruby-on-rails-3.1 - 本番サーバーの起動時にイメージが提供されないのはなぜですか?

開発モードで起動すると、すべての画像と favicon.ico を適切に提供するライブサーバーに Rails 3.1.0 アプリケーションがあります。

しかし、実稼働環境で同じアプリを起動すると、パブリック フォルダー内のファビコン画像/その他の画像は提供されず、それらのパスは 404 エラーをスローします (興味深いことに、404 ページの静止画像も提供されません)。Rails Godsの手がかりはありますか?

NginX + Unicorn + Rails 3.1.0 を使用しています。Assets パイプラインは、404/500 エラー ページと favicon を除くすべてに使用されます。

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

ruby-on-rails - Rails 3.1: 圧縮されていないアセットを提供するときの断続的な 500 内部サーバー エラー

アプリを Rails 3.1 にアップグレードしています。よく引用されるように、Firebug はいくつかのアセットについて不平を言います。Firebug から貼り付けられたいくつかのエラーを次に示します。

ページを更新すると、同じエラーを示す別のアセットが生成されます。URL をコピーして貼り付けると、ファイルが正常に表示されます。

私は使用しています:

  • Ubuntu 11.04
  • アパッチ + パッセンジャー 3.0.9

これを修正するにはどうすればよいですか?

UPDATE : ログファイル

この特定の例でjquery-ui.jsは、Firebug でエラーが表示されていました。私のログファイルは次のようになりました:

スキップしたようjquery-ui.jsです!

2011 年 10 月 1 日更新:

passenger startより説明的なエラーが発生するように見えるため、スタンドアロンのパッセンジャー ( ) で試してみました。jquery.jsこれは、ファイルだけを読み込んで、繰り返し押しCTRL-Rてブラウザを更新し、そのアセットを繰り返し読み込もうとしたときに起こることです。

0 投票する
4 に答える
6801 参照

ruby-on-rails-3.1 - サブURIにデプロイするときに、Rails3.1でプリコンパイルされたアセットが壊れている

Rails3.1を使用するようにRails3アプリを更新している最中であり、その一環として、新しいアセットパイプラインを利用しています。これまでのところ、解決できないかなり厄介な問題を除けば、すべてが機能しています。

アプリケーションとそのすべてのアセットは、開発では正常に機能しますが、本番環境では、Passenger()を使用してサブURIにデプロイされhttp://the-host/sub-uri/ます。これに伴う問題は、アセットがデプロイ中にプリコンパイルされ、CSS(まあ、それは.css.scssファイルです)ファイルの1つがgemのimage-urlヘルパーを利用していることです。sass-railsプリコンパイルプロセス中に、パスがプリコンパイルされたCSSファイルにハードコードされるため、サブURIは考慮されません。

私の.css.scssファイル:

コンパイルされたapplication-<md5-hash-here>.cssファイルの結果:

正しく機能させるにはどうすればよいですか。

このシナリオは、質問が多すぎますか?もしそうなら、私は古い非アセットパイプラインの方法に切り替えて、からの画像とCSSを提供する必要がありpublicます。しかし、それは考えられて解決されるべきもののように思えます...?私は解決策を逃していますか?


編集1:代わりにerbソリューションを使用すると、予想どおり同じ結果が得られることに注意してください。


編集2:ブノワギャレットのコメントに応えて

いいえ、問題はに関連していませんconfig.assets.prefix。私はそれを(/sub-uri/assetsデフォルトではなく/assets)に設定しようとしましたが、それは間違ったことであることがわかりました-この設定はすでにサーバーではなくRailsアプリのルートに関連しているようです。それを削除する(したがってデフォルトに戻す)ことで、原因となったすべての奇妙な問題が修正されました(そして、多くの、すべてのアセットが最終的に作成されました/sub-uri/sub-uri/assets-それはすべて非常に奇妙でした)。唯一の問題は、image-urlヘルパーや友人は、プリコンパイルされたときにサブURIを取得しません。言うまでもなく、これは論理的です。プリコンパイルされている場合、Passengerで実行されているときに、このように構成されることを認識できなかった可能性があります。私の質問は、これをどのように通知するかであり、したがって、プリコンパイルされた結果に正しいパスが含まれることになります。確かにそれができるなら。

私の現在の回避策は、CSSでiamgeを次のように参照し、url(../images/bg.png)パイプライン化されていない場所に配置することpublic/imagesです。フィンガープリントやパイプラインが提供するすべてのものの恩恵を受けないため、ほとんど理想的ではありません。

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

ruby-on-rails - Rails 3.1 アセットのパイプラインとページの更新

ブラウザーで cmd+R (ctrl+R、F5) を押すたびに、すべてのスタイルシートと JavaScript が失われます。次にcmd + Rをクリックすると、正常に表示されます。お気に入り

とても面白いですが、生産されていません。何が起こっている?