web-dev-qa-db-ja.com

Rails application.jsマニフェストに必要なファイルを含まないアセットパイプライン

Railsアセットパイプラインには、application.jsで必要なファイルが含まれていません。

ブラウザにレンダリングされる唯一のjavascriptファイルはapplication.jsであり、require行は、タグを含めるようにコンパイルされていません。

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require Twitter/bootstrap
//= require bootstrap
//= require_tree .

;

config /application.rbにconfig.assets.enable = trueがあります

Rails 3.2.8を使用しており、rvmを使用してインストールされたRuby 1.9.3-p398および2.0.0-p0を試しました。

Application.jsに必要なファイルを含めるにはどうすればよいですか?

編集:この質問のロックが最近解除され、アクティビティが増加したようです。私がこれに取り組んでからしばらく経ちました、そしてコードはもう存在しません。正しく覚えている場合は、RubyおよびRails)を再インストールすると、問題が修正されました。

この質問を閉じる必要がありますか?この状況での適切な手順は何ですか?

24
everett1992

私はここでこれに答えました:

Rails 3.2.8 Application.jsおよびApplication.cssが期待どおりに機能していません

テキストは次のとおりです。

私もこの問題を抱えていましたが、新しいバージョンのRailsとRubyでした。

ログを調べると、サーバーがファイルの変更を認識しなかったため、Railsキャッシュからjavascript.jsが提供されていました。必要な行を(1つだけ)移動して伝えました。 Railsファイルに変更があり、再コンパイル/使用します。Wellmがそれをやってくれました!

それが誰かを助けることを願っています。

もう1つの重要な発見は、Gemfile内のスプロケットgemをアップグレードすることです。

バージョン2.2.1があり、問題がありました。2.2.2にアップグレードした後、機能しました。

gem 'sprockets', '2.2.2' 
13
lsaffie

3.0.x〜3.1.xからアップグレードしてこの問題が発生した場合は、3.2.xにアップグレードすると、この問題が解決する可能性があります。

最近、アプリを3.0〜3.1.12にアップグレードしましたが、Ruby 1.9.3、Ruby 2.0、またはRuby2.1を使用するとアセットマニフェストが機能しないことがわかりました。 1.1。次に、先に進んで3.2.17にアップグレードしましたが、Ruby2.1.1を使用してすべてが正しく機能しているようです。

うまくいけば、これはこの問題のアップグレードに遭遇する可能性のある他の人に役立つでしょう。

3
user3407501

これの一般的な理由の1つは、アセットがコンパイルされてpublic/assetsにあることです。この場合、Railsはアセットを再コンパイルしません。ここにアセットがあり、config.serve_static_assetsを設定していない場合falseにすると、Railsはアセットを再コンパイルしません:

config.serve_static_assets = false

したがって、パブリック/アセットでプリコンパイルされたものがある場合は、それらを削除するか、上記の行をdevelopment.rbに追加してください

1
Houen

bootstrapファイルをベンダー/アセットフォルダー、またはアプリ/アセットにコピーして貼り付けましたか?アセットパイプラインには、デフォルトでアプリ/アセットフォルダーのみが含まれ、lib /アセットまたはベンダー/は含まれません。アセット。パイプラインにベンダー/アセットを含めるには、次のコマンドをapp/assets/javascript /application.jsファイルに入力します。

//= require_tree ../../../vendor/assets/javascripts/

CSSファイルに対して同じことを行うには:

*= require_tree ../../../vendor/assets/stylesheets/

ファイルの上部にあるコメントで、アプリ、ライブラリ、またはベンダーフォルダー内のすべてのファイルが含まれると書かれていることは知っていますが、そうではないことがわかりました。理由は説明できませんが、ソースについては ここ を参照してください。上記のコマンドを試すか、アプリ/アセットフォルダーにbootstrapファイルを含めてください。お役に立てば幸いです。

0
Richie Thomas