問題タブ [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 投票する
2 に答える
6145 参照

ruby-on-rails - Rails 3.1 のアセット パイプラインを使用して .scss マニフェスト ファイルをプリコンパイルする

Rails 3.1 のリリース バージョンでは、拡張子scss. 奇妙なことに、デフォルトのマニフェスト ファイルはapplication.scss正常にコンパイルされ、public/assets/.

ただし、カスタム マニフェスト ファイルをコンパイルしようとすると、何も作成されません。プロダクション構成でプリコンパイル オプションを有効にしました。

私が知る限り、プリコンパイル rake タスクを正しく実行しています。

そして多分これが役に立ちます。scssではなくcssという拡張子を持つ 2 つの新しいマニフェスト ファイルを作成し、元の scss ファイルが必要な場合、これらの新しいマニフェスト ファイルは受け入れられ、適切にコンパイルされます。他の sass マニフェスト ファイルではなく、この特別な扱いを受けるのはなぜですか?application.scss

0 投票する
6 に答える
24716 参照

ruby-on-rails-3.1 - SASS、Rails 3.1: vendor/assets でのスタイルシートの読み込み

SASS を使用して Rails 3.1(sass-rails 3.1) アプリにスタイルシートをロードしています。たとえば、sass パーシャルはin -app/assets/stylesheetsを使用してロードされます。@importapplication.sass

今、私もロードしたいvendor/assets/stylesheetsrequire vendorを使用していないことに注意してください@import pages/*。これは、sassが推奨する方法のようです。ここのファイルは であり、またはcssではありません。やファイルにしか使えないので使えません。sassscss@import ../../../vendor/assets/stylesheets/*sassscss

これを行う方法はありますか?

アップデート

私が今持っているのはこれです。

application.css.scss

これには、上記のすべての sass パーシャルが含まれます。require vendorイン_

vendor/assets/stylesheets/vendor.cssのように見える

このアプローチの注意点は、sass ミックスイン (ユーザー定義 & プラグイン) と共通変数がすべてのパーシャルで使用できるわけではないことです。私が今持っているのは、すべてのパーシャルで最初のものです_common_imports.sass@import

common_imports.sass

common_importsすべてのパーシャルをインポートするのは非常に反復的です。

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

jquery - マークアップ!とRails 3.1は上手くいかない

マークアップしてみました!Rails 3.1 で動作すると、投稿コントローラー内で魔法が発生するため、assets/javascript にマークアップ JavaScript をスローし、posts.js に追加しました (投稿ビューのテキストエリアのみが追加されます)。

私の資産/スタイルシート/posts.cssで

さらに私は変わる

適切なasset_path画像パスを取得します

jquery.markitup.js ファイルで、ルート パスを次のように変更しました。

そのため、マークアップで作成された関数を使用してルート セットをチェックせず、代わりにルートを使用します。

したがって、メインの js ファイルへの正しいパスが取得されます。私の _form.html.erb ファイルは

これは、posts.css.erb で設定された width:700px のテキスト領域を表示するので機能します。

テキスト編集用のテキスト領域の上に小さなツールバーがありません(B、Iなど...)

よろしくお願いします、HeTzi&Guy。

markItUp ドキュメント: http://markitup.jaysalvat.com/documentation/

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

ruby-on-rails - SCSSパーシャルでRails3.1アセットパスを使用する

私は次の設定をしています:

私のさまざまなパーシャルで、アセットパスに実際の問題があります。マニフェストの内部application.css.scssまたはマニフェストによってロードされたものの場合、次を使用できます。

ただし、パーシャルなどのパーシャルを使用している_layout.css.scss場合、同じことを試してみると、コンパイルされたファイルからbackground-imageプロパティが省略されます。SCSSアセットヘルパーはパーシャル内では利用できないようですか?

誰かがこれを機能させることができましたか、私は明らかな何かを見逃していますか?それとも、パーシャルでアセットヘルパーを使用することは単に不可能ですか?もしそうなら、これは大きな大きな問題です。私のアプリ構造全体は、パーシャル間で共有されるSCSS変数とミックスインに依存しているからです。

変数とミックスインがスプロケットマニフェスト間で共有されていないことを知っているので、パーシャルがアセットヘルパーにアクセスできない場合は、すべてを1つのscssファイルに連結する必要があります。これは、SassとSprocketsの両方の目的をかなり損ないます。

どんな助けでも大歓迎です!

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

ruby-on-rails-3.1 - Rails 3.1 のアセットとレイアウトのトラブル

標準的な慣行に従って、「/ app/assets/stylesheets/application.css」にcssを含むデフォルトのレイアウトを使用するRails 3.1アプリケーションがあります。これは、アプリケーションの主要部分のアセット パイプライン処理でうまく機能します。

しかし、次のように /app/views/layouts/showreports.html.erb レイアウトを使用するレポートを生成するときは、別の「レポート」レイアウトを使用します。

rake assets:clean; rake assets:precompileアセットをプリコンパイルし、マニフェスト ファイル (/public/assets/manifest.yml) で問題がないことを確認するために使用していますが、showreports.css または showreports.js への参照が表示されません。

プログラムを開発モードでテストすると、当然のことながら、それらのファイルを見つけることができません。

これは Rails 3.1 での基本的なスプロケットの質問だと思いますが、スプロケットはアセットのすべてのレイアウト ファイル (デフォルトの application.html.erb ファイルを超えて) を解析するのに十分スマートであると思いました。

これがバグなのか、それともこれがどのように機能するかについての私の誤解なのか疑問に思っています.

乾杯、

グレッグ


アップデート

さらにいじくり回した後、これが私にとって最も理にかなっていたので、私は自分の質問に答えています...

この答えは本当に正しい手がかりを与えました

私が間違っていたのは、「showreports.css」および「showreports.js」という名前のファイルをマニフェスト ファイルとして使用していたことです。

私の修正は 、showreports.(css|js) を作成してから、それぞれのディレクトリ内で application.(css|js) に名前を変更することでした/app/assets/stylesheets/showreports/app/assets/javascripts/showreports

その後、rake assets:precompileそれらをうまく見つけて、マニフェストファイルに正しく追加しました。

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

javascript - Rails3.1Javascriptのアセットパイプライン

わかりました。Rails3.1の新しいアセットパイプラインに関する多くの情報を読みましたが、疑問に対する適切な答えを見つけることができませんでした。

オンデマンドで、レンダリングしていたview#actionに従って.jsファイルをロードしていました。誤ったバインディングを防ぎ、小さな.jsファイルをロードするためにこれを行っていました。

Candidate_opportunities#index

Candidate_companies#index

今の最良の解決策は何ですか?

  • バインディングを変更し、Sprocketsにすべての.jsファイルを使用してコンパイルさせる必要があります//= require_tree .か?
  • または、ビューに従って.jsをロード して、巨大なapplication.jsになってしまわないようにする必要があり ますか?
0 投票する
4 に答える
10873 参照

ruby-on-rails - Sprockets::Store#index の CircularDependencyError

Rails 4th edition を使用したマニュアル Agile Web Development に従っていますが、Rails 3.1 の sprocket css に問題があります。

コード css は次のとおりです。

http://media.pragprog.com/titles/rails4/code/rails31/depot_e/app/assets/stylesheets/application.css.scss

app/assets/stylesheets/aplication.css.scss の css コードを変更すると、次のエラーが発生します。

たとえば、aplication.css.scss でマージン値またはパディング値を変更すると、このエラーが発生する理由がわかりません。

どうもありがとうございました。

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

ruby-on-rails-3.1 - Rails 3.1 / Sprockets:コントローラー変数(またはヘルパー)をjavascriptアセットに挿入します

私は

私がやりたいのは、そのページに呼び出されたjavascriptにそれを挿入することだけです。例えば:

コントローラにアクセスする前にcoffeescript/erbがコンパイルされるため、これは機能しないと思います...したがって、3.1でコントローラ変数をJavaScriptファイル(クライアント側-ajax経由ではアクセスしない)に挿入したい場合は、どうすればいいですか?

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

ruby-on-rails-3 - rails3.1スプロケットのプリコンパイルアセットをカスタマイズする

プリコンパイルするアセットをカスタマイズしようとしています。本番環境では、application.jsとapplicaiton.cssのみをコンパイルし、後続のすべてのファイルをコンパイルする必要はありません。

たとえば、次のファイルを指定すると、プリコンパイルrakeタスクを実行するときに1つのファイル(appliation.css)のみが出力されます。

デフォルトでは、assetsディレクトリ内のすべてのアセットをプリコンパイルしますが、これは非常に面倒です。

EDITの修正は、アセットディレクトリ内のすべての非jsおよびcssファイルをプリコンパイルするデフォルトです。ただし、form.elements.jsのようなファイルがある場合、スプロケットはそれがjs/css以外のファイルであると考えてプリコンパイルします。

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

ruby-on-rails - Rails 3.1 でワイルドカード サブドメインに基づいて Sprockets にアセット検索パスを追加するにはどうすればよいですか?

Rails Asset Pipeline ガイドではconfig.assets.pathsinを使用するように指示されconfig/application.rbていますが、現時点ではリクエストのサブドメインにアクセスできません。

リクエストのサブドメインに基づいて、追加のパス (現在のリクエストのみ) を追加できるようにしたいと考えています。

私のアプリケーション固有の詳細

基本的なCMSアプリです。ルートdomain.comホストは、標準のコントローラー/ビュー レンダリングとデフォルトのアセット パスを使用して管理部分を処理します。

subdomain.domain.comに基づいてサイトをレンダリングするリクエストsubdomain。を呼び出しprepend_view_pathて、現在のリクエストのみbefore_filterを追加 します。Rails.root.join('vendor/sites/[subdomain]/templates')

リクエストRails.root.join('vendor/sites/[subdomain]/assets')ホストが[subdomain].domain.com.

編集

callメソッドSprockets::Environmentを上書きするためのミックスインをドロップするだけになりました。