問題タブ [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.1でコントローラ固有のjavascriptを表示するには?
私はこのようなアセットフォルダ構造を持っています
project.js と projectValidate.js を、製品コントローラーのアクションが呼び出されたときにのみアセット パイプラインの一部として application.js に追加し、ストア コントローラーのアクションが呼び出されたときに store.js を追加したいと考えています。Rails 3.1でこれを達成するにはどうすればよいですか?
ruby-on-rails - スプロケットrequire_directoryの問題
新しく生成されたRails3.1アプリでYahooのreset.cssを使用しています。次のアプリ構造が与えられます:
次のディレクティブapplication.css
を使用してreset.cssファイルを内部に含めると、で終わります。require_directory
require_tree argument must be a directory
何か問題がありますか、それともこれはスプロケット関連のバグですか?reset.cssファイルをに移動するのapp/assets
は魅力のように機能するからです。
(ところで、カスタムSprockets環境を使用するRails 3.0アプリでも問題が発生しました。)
javascript - Ruby コードが埋め込まれた JavaScript は、Rails 3.1 アプリのどこに配置する必要がありますか?
Rails 3.1 アプリの場合、サイト全体の JavaScript の一部は、特定のリアルタイムのインスタンス固有の条件が満たされた場合にのみ含まれます。これは、新しいアセット パイプラインの application.js に配置できないことを意味します。これは、現在のコンテキスト内に埋め込まれた Ruby について erb によって解析されないためです。基本的に、ログインしている current_user に基づいて、キーボード ショートカットを含めています。
私の質問: コードが埋め込まれたこの JavaScript をどこに移動すれば、適切なコンテキスト (つまり、現在ログインしているユーザー) でページ アクセスごとに埋め込み Ruby が引き続き解析されるようになりますか?
答えは、一番下の application.html.erb レイアウト ビューに配置するだけのようですが、これは、直感的でない場所に JavaScript コードを隠しているように見えます。
application2.js.erb ファイルを作成しようとしましたが、未定義の変数に関するエラーが発生しました。これは、出力がキャッシュされる前にアセット エンジンがこのファイルを 1 回だけ解析し、スコープがまだ正しくないためであると考えられます。 current_user のようなもの。
したがって、ここでは application.html.erb を使用しても問題なく動作します。これは、機能的に動作させる方法の問題ではありません。代わりに、ここでアセット パイプライン モデルを要件に組み込み、JavaScript のほとんどを assets/javascripts ディレクトリに保持する、より洗練された方法があるかどうか疑問に思っています。
ruby-on-rails-3.1 - Ruby on Rails 3.1 アプリケーションで Less を使用するにはどうすればよいですか?
Ruby on Rails 3.1 アセット パイプラインでLessを ( Sass /Scssと組み合わせて) 使用する最も簡単な (簡単な方法はありますか?) ものは何ですか?
bar.css.scss の場合と同じように、foo.css.less のようなファイルをロードしたい
私にはうまくいかない奇妙な解決策を見つけました(あまり試していません): https://github.com/thisduck/ruby-less-js/issues/2
アイデアは、Twitter Bootstrap をクリーンな方法で使用することです。
ruby-on-rails-3.1 - Rails 3.1 静的アセット - アセットはプロダクション用にプリコンパイルする必要がありますか?
本番モードでの新しい Rails 3.1 アセット パイプラインについての私の理解は次のとおりです:->
- config.action_controller.asset_host =
"https://mybucket.s3.amazonaws.com"
- config.assets.compile = false
app/assets
レポにチェックインされます- bundle exec rake assets:プリコンパイルと S3 との同期 (すべてのアセット)
public/assets
リポジトリにチェックインされていません
以上のことから、Rails は S3 上のすべてのアセットを検索するので、リポジトリにそれらのアセットは必要ないと思いました。または、少なくとも、リポジトリにプリコンパイルされたアセットは必要ありませんpublic/assets
。
私はherokuでこれを見つけました。持っていない場合config.assets.compile = true
、S3でプリコンパイルされたアセットが完全に見つかりません。また、herokuはすべてのアセットのコンパイル フェーズを実行する必要がありますが、その後は S3 からサーバーに移行します。ランニングheroku run rake assets:precompile
はスクワットをしません。生産プロセスはすべてを再コンパイルします。
は?それは私には意味がありません。
リポジトリに画像を入力する必要はなく、CDN に任せてください。
これは間違っていると感じています。私は正しいですか、それとも間違っていますか?
ruby-on-rails - Rails 3.1 アセット: scss で image_url を呼び出すと、認識されないファイル タイプが発生する
ファイルを呼び出すimage_url('path/to/image.png')
と、次のcss.scss
エラーが発生します。
ブランチcompass '0.12.0.alpha.0'
から使用しています。rails_31
それが問題かどうかはわかりません。しかし、それは言及する価値があると思いました。
ファイルに画像を含めるにはどうすればよいcss.scss
ですか?
ruby-on-rails - Rails 3.1 および Coffeescript: ディレクトリ全体が必要
次のような個々のファイルの要件があります。
ディレクトリを要求するのと同等のものはありますか?
ruby-on-rails - アセットのパーシャルをレンダリングする
Ruby on Rails 3.1 を使用していますが、javascript アセットでパーシャルをレンダリングする方法を知りたいと思っています。
私が目指しているもの:
これにより、NoMethodError が発生します。
<%= 2+3 %>
代わりに書くと、問題なく動作します。
render()
問題は、アセット パイプラインがデフォルトの ActionView から独立していることであり、それが不明な理由だと思います。とにかく、そのパーシャルのコンテンツをレンダリングする方法はありますか?
ruby-on-rails-3.1 - アセット パスにフィンガープリントがない
新しいアセット パイプラインを使用して Rails 3.1 アプリをデプロイしました。開発中はすべて問題ないように見えますが、本番環境ではすべてのアセット イメージが欠落しています。デプロイするときは、Ruby on Rails Edge ガイドに従いました。例として、アプリの簡単なコード スニペットを示します。
これにより、本番環境で次が生成されます。
しかし、フィンガープリントがありません (したがって、本番環境ではデッドリンクです)。「画像」なしで、image_tag
代わりにすでに試しました。何も機能していません。
追加情報:
- レール バージョン 3.1.0
すでに見て試してみました:
ruby-on-rails - Rails3.1.0の本番サーバーで画像とアセットが機能しない
サーバーを本番環境に切り替えましたが、画像を読み込めません。開発モードではすべて正常に機能しますが、本番環境に切り替えるとすべて機能しなくなり、server_static_assetsを有効にしましたが、それでも何も機能しません。これを行うための助け