問題タブ [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.
ruby-on-rails - Rails 3.0.x で Sprockets 2 を使用する方法 (プリコンパイル済みアセットの使用方法)
Rails 3.0 app で Rails 3.1 に導入されたアセット パイプラインの基本を複製しようとしています。
これまでのところ、 https ://gist.github.com/1112393 のようなものがあります。
それはうまくいきます:
- app/assets/、lib/assets、vendor/assets にアセットがあります...
- それらはすべて /assets で提供されます
- スプロケット2のオファーなどすべてを使用できます...
問題は、Rails アプリに静的アセットを提供させたくないということです。サーバーがそれを行う必要があります。私が正しく理解していれば、Rails 3.1 でアセットをプリコンパイルできるのはそのためです。そこで、まさにそれを行う rake タスクを作成しました (Sprockets::Environment の precompile メソッドを使用)。すべてのアセットが /public/assets/ にあります。
たとえば、私は
- アプリケーション-02f8c96b342b4569513d0edf39ef55eb.css
- アプリケーション-505e8f472350fb1e0d15f6ad2f5e0389.js
- gallery-icons-0e922050a85718fef3cd570df4eb5845.png
しかし、Rails 3.1 では、style.css.scss.erb でそのようなことができます。
そして、あなたは得るでしょう
プリコンパイル済みファイル内。
私が間違っていなければ、ハッシュを追加するためにRails 3.1で上書きされるstylesheet_link_tag、javascript_link_tagについても同じです。
これどうやってするの?
ありとあらゆるアイデアをください!ありがとう。
ruby-on-rails-3 - Heroku Cedar スタックと Rails 3.1 RC5 に画像が表示されない?
Heroku、Cedar スタックで Rails 3.1 RC5 を実行する人はいますか? アセット画像 (ロゴ、アイコン、main_bg など) が表示されていないことを除いて、これまでのところすべてが機能しているようです。
この問題に関連しているかどうかはわかりません。
この問題を解決できた方からのご連絡をお待ちしております。
ruby-on-rails - Rails3.1とjQuerymobile:アセットパイプラインを考慮しながらJSとCSSを整理する最良の方法は?
Rails3.1アプリをjQuerymobile(現時点ではベータ2)と統合していますが、JSとCSSを整理する方法がわかりません。
私はこれを私のapplication.mobile.erbのヘッドタグに持っています(http://jquerymobile.com/download/から直接コピーされました):
'application'のstylesheet_link_tagをこのすぐ上に配置して、CSSスタイルがjQuery mobileの派手なCSSを上書きしないようにする必要がありますか?'application'のjavascript_include_tagはどうですか?
それとも、これらすべてを完全に分離する必要がありますか?
私はこれをすべて整理する方法がわかりません/これを行うための従来の方法があるかどうか。入力を歓迎します。
(必要に応じて詳細をお問い合わせください。)
編集:*モバイル固有のJSとCSSをどこに配置するかも疑問に思っています...
ruby-on-rails - Rails 3.1 が静的アセットを Rails.cache にキャッシュしないようにするにはどうすればよいですか?
Rails 3.1 アプリケーションで CloudFlare CDN を使用しています。Cloudflare は、DNS レベルで機能する CDN です。静的アセットへの最初のヒットで、CloudFlare はそれをアプリからロードし、CDN にキャッシュします。そのアセットに対する今後のリクエストは、アプリではなく CDN から読み込まれます。
私が抱えている問題は、コントローラーのキャッシュをtrueに設定した場合です:
Rack::Cache ミドルウェアを有効にします。Rails は静的アセットのデフォルトのキャッシュ制御設定を設定するため、それらのアセットは Rails.cache ストアに書き込まれます。その結果、私のキャッシュ ストア (私の場合は redis) は、ハッシュ キーとしての URL を持つ静的アセットでいっぱいになります。
残念ながら、Cloudflare とユーザーのブラウザーがアセットをキャッシュする方法に影響を与えずに、静的アセット キャッシュ コントロール ヘッダーをオフにすることはできません。コントローラーのキャッシュをオフにできません。または、ページ/アクション/フラグメントのキャッシュが失われます。Rack::Cache ミドルウェアを削除しても同じ結果になります。
他のアイデアはありますか?
更新: GitHub here でチケットをオープンしました。
ruby-on-rails-3 - アセット パイプラインが application.js application.css を生成しない
私が間違っているのかわかりません。しかし、私は得る:
これが私の設定です:
application.rb で:
app/assets/javascripts/application.js 内:
app/assets/stylesheets/application.css についても同様
/assets/application.[css|js] が生成されない/アクセスできないのはなぜですか? 手動で何かを実行する必要がありますか? スプロケットも必要ですか、それともレールの一部ですか?
ruby-on-rails - リクエストごとにアセットをコンパイルする方法はありますか?
動的コンテンツを含むアセットで問題が発生しています。たとえば、次のような time.js.erb とします。
私の問題は、アセットを変更しないため、代わりにアセットがコンパイルされず、応答で「304 Not Modified」が返され、時間変数が最後の要求と同じになることです。
少なくとも開発中は常にアセットをコンパイルするようにアセット パイプラインに指示する方法はありますか?
ruby-on-rails - Rails 3.1: 名前付きルートを持つアセット パイプライン
レール 3.1.0.rc5
ERB 対応の Javascript ファイル内で名前付きルートを機能させるのに問題があります。
エラーメッセージは次のとおりです。
ビューで直接使用すると、ajax_items_path
ルートは正常に機能します。
アセット パイプライン内で名前付きルートを使用できないようです。この場合、回避策は何ですか? Javascript で URL をハードコーディングすることは避けたいと思っています。
image - Rails 3.1: アセット パイプライン内の画像への動的リンク?
以前にpublic/images/flags/
とpublic/images/flags_small/
. Country モデルの各国について、:iso_code
対応する国旗画像の名前と同じ を保存します。たとえば、mx はメキシコの 2 文字の ISO コードであるため、mx.png はメキシコの国旗の名前です。
以前は、html を返して、国の iso コードに基づいて画像を表示するヘルパー メソッドと、大小のフラグのどちらが必要かというヘルパー メソッドがありました。
Rails 3.1 では、アセット パイプラインに準拠するために、これらの画像をapp/assets/images
フォルダーに入れる必要があるという印象を受けました。これから:
- その中のサブフォルダーを維持できますか?
- image_tag を使用して適切な画像を表示するにはどうすればよいですか?
編集: 解決策 以下の答えは正しかったのですが、毎回それほど多くのコードを入力したくなかったので、2 つのヘルパー メソッドを作成しました。
ruby-on-rails - Rails 3.1 の画像のみに asset_host proc を使用する
Rails の以前のバージョンでは、proc を使用して、別のサーバーから画像アセットのみを提供することができました。
これは、新しいアセット パイプラインのため、Rails 3.1 では機能しないようです。これを機能させる方法を知っている人はいますか?
import - Rails3.1アセットパイプラインは@importされたシートへの変更を取得しません
'd部分シートを使用@import
してcss/sassを整理します。
app.css.sass
の@import
ルールが_layout.sass
あります。これにより、ミックスインと変数を、コンパイルされる前に生のsassファイル間で共有できます。app.css
@import
問題は、Railsが'd部分(_layout.sass
)への変更を認識せずapp.css
、実際のapp.css.sass
ファイル自体に変更を加えるまで再生成されないことです。これによりワークフローが劇的に遅くなり、app.css.sass
変更を確認するために空白行を追加/削除する必要があります。3.0ではこの問題は発生していません。
開発中のすべてのサーバーリクエストでsassアセットを強制的に再生成する方法はありますか?