問題タブ [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 - Rails 3.1 のアセット パイプラインを使用して .scss マニフェスト ファイルをプリコンパイルする
Rails 3.1 のリリース バージョンでは、拡張子scss
. 奇妙なことに、デフォルトのマニフェスト ファイルはapplication.scss
正常にコンパイルされ、public/assets/
.
ただし、カスタム マニフェスト ファイルをコンパイルしようとすると、何も作成されません。プロダクション構成でプリコンパイル オプションを有効にしました。
私が知る限り、プリコンパイル rake タスクを正しく実行しています。
そして多分これが役に立ちます。scssではなくcssという拡張子を持つ 2 つの新しいマニフェスト ファイルを作成し、元の scss ファイルが必要な場合、これらの新しいマニフェスト ファイルは受け入れられ、適切にコンパイルされます。他の sass マニフェスト ファイルではなく、この特別な扱いを受けるのはなぜですか?application.scss
ruby-on-rails-3.1 - SASS、Rails 3.1: vendor/assets でのスタイルシートの読み込み
SASS を使用して Rails 3.1(sass-rails 3.1) アプリにスタイルシートをロードしています。たとえば、sass パーシャルはin -app/assets/stylesheets
を使用してロードされます。@import
application.sass
今、私もロードしたいvendor/assets/stylesheets
。require vendor
を使用していないことに注意してください@import pages/*
。これは、sassが推奨する方法のようです。ここのファイルは であり、またはcss
ではありません。やファイルにしか使えないので使えません。sass
scss
@import ../../../vendor/assets/stylesheets/*
sass
scss
これを行う方法はありますか?
アップデート
私が今持っているのはこれです。
application.css.scss
これには、上記のすべての sass パーシャルが含まれます。require vendor
イン_
vendor/assets/stylesheets/vendor.css
のように見える
このアプローチの注意点は、sass ミックスイン (ユーザー定義 & プラグイン) と共通変数がすべてのパーシャルで使用できるわけではないことです。私が今持っているのは、すべてのパーシャルで最初のものです_common_imports.sass
。@import
common_imports.sass
common_imports
すべてのパーシャルをインポートするのは非常に反復的です。
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/
ruby-on-rails - SCSSパーシャルでRails3.1アセットパスを使用する
私は次の設定をしています:
私のさまざまなパーシャルで、アセットパスに実際の問題があります。マニフェストの内部application.css.scss
またはマニフェストによってロードされたものの場合、次を使用できます。
ただし、パーシャルなどのパーシャルを使用している_layout.css.scss
場合、同じことを試してみると、コンパイルされたファイルからbackground-imageプロパティが省略されます。SCSSアセットヘルパーはパーシャル内では利用できないようですか?
誰かがこれを機能させることができましたか、私は明らかな何かを見逃していますか?それとも、パーシャルでアセットヘルパーを使用することは単に不可能ですか?もしそうなら、これは大きな大きな問題です。私のアプリ構造全体は、パーシャル間で共有されるSCSS変数とミックスインに依存しているからです。
変数とミックスインがスプロケットマニフェスト間で共有されていないことを知っているので、パーシャルがアセットヘルパーにアクセスできない場合は、すべてを1つのscssファイルに連結する必要があります。これは、SassとSprocketsの両方の目的をかなり損ないます。
どんな助けでも大歓迎です!
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
それらをうまく見つけて、マニフェストファイルに正しく追加しました。
javascript - Rails3.1Javascriptのアセットパイプライン
わかりました。Rails3.1の新しいアセットパイプラインに関する多くの情報を読みましたが、疑問に対する適切な答えを見つけることができませんでした。
オンデマンドで、レンダリングしていたview#actionに従って.jsファイルをロードしていました。誤ったバインディングを防ぎ、小さな.jsファイルをロードするためにこれを行っていました。
Candidate_opportunities#index
Candidate_companies#index
今の最良の解決策は何ですか?
- バインディングを変更し、Sprocketsにすべての.jsファイルを使用してコンパイルさせる必要があります
//= require_tree .
か? - または、ビューに従って.jsをロード して、巨大なapplication.jsになってしまわないようにする必要があり ますか?
ruby-on-rails - Sprockets::Store#index の CircularDependencyError
Rails 4th edition を使用したマニュアル Agile Web Development に従っていますが、Rails 3.1 の sprocket css に問題があります。
コード css は次のとおりです。
app/assets/stylesheets/aplication.css.scss の css コードを変更すると、次のエラーが発生します。
たとえば、aplication.css.scss でマージン値またはパディング値を変更すると、このエラーが発生する理由がわかりません。
どうもありがとうございました。
ruby-on-rails-3.1 - Rails 3.1 / Sprockets:コントローラー変数(またはヘルパー)をjavascriptアセットに挿入します
私は
私がやりたいのは、そのページに呼び出されたjavascriptにそれを挿入することだけです。例えば:
コントローラにアクセスする前にcoffeescript/erbがコンパイルされるため、これは機能しないと思います...したがって、3.1でコントローラ変数をJavaScriptファイル(クライアント側-ajax経由ではアクセスしない)に挿入したい場合は、どうすればいいですか?
ruby-on-rails-3 - rails3.1スプロケットのプリコンパイルアセットをカスタマイズする
プリコンパイルするアセットをカスタマイズしようとしています。本番環境では、application.jsとapplicaiton.cssのみをコンパイルし、後続のすべてのファイルをコンパイルする必要はありません。
たとえば、次のファイルを指定すると、プリコンパイルrakeタスクを実行するときに1つのファイル(appliation.css)のみが出力されます。
デフォルトでは、assetsディレクトリ内のすべてのアセットをプリコンパイルしますが、これは非常に面倒です。
EDITの修正は、アセットディレクトリ内のすべての非jsおよびcssファイルをプリコンパイルするデフォルトです。ただし、form.elements.jsのようなファイルがある場合、スプロケットはそれがjs/css以外のファイルであると考えてプリコンパイルします。
ruby-on-rails - Rails 3.1 でワイルドカード サブドメインに基づいて Sprockets にアセット検索パスを追加するにはどうすればよいですか?
Rails Asset Pipeline ガイドではconfig.assets.paths
inを使用するように指示され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
を上書きするためのミックスインをドロップするだけになりました。