答えて

2

第三者のjsファイルは、ベンダーのフォルダにある必要があります。プロダクション用にプリコンパイルすると、パブリックフォルダに自動的に移動されます。特定のページの特定のファイルを呼び出すには、require_treeディレクティブを削除する必要があります。また、application.jsアセットファイルでどのファイルが呼び出されるかにも注意してください。あなたが追加する必要があります終了bodyタグの前に一番下にあなたのアプリケーション/レイアウトビューで次に

<%= content_for :javascript do %> 
    <script type='text/javascript'> 
    YOUR FUNCTIONS HERE 
    </script> 
<% end %> 

:すべてのビューページ(html.erb)の一番下であなただけのページ特定JSを実行するには、次を追加することができます。

<%= javascript_include_tag params[:controller] if Rails.application.assets_manifest.assets["#{params[:controller]}.js"] %> 
<%=yield :javascript %> 

これは、ページビュー単位ですべてのjsを実行し、対応するコントローラのjsアセットファイル内の任意のファイルに対して任意のrequireステートメントを含めます。

コメントを書き込むための更新:インストールした宝石があり、特定のjsファイルを要求する必要がある場合は、application.jsファイルのapp/assets/javascriptsフォルダから必要なものが必要です(その宝石アプリケーション全体で使用できるようにするため)、またはコントローラー固有のjsファイルで、数ページでその機能が必要な場合にのみ使用します。たとえば、角度の宝石はおそらくアプリケーション全体で使用されるので、// = requireステートメントをapp/assets/javascriptsフォルダ内のapplication.jsファイルに追加します。手動でjsライブラリをダウンロードする場合は、vendor/javascriptsフォルダに置く必要がありますが、app/assets/javascriptsフォルダのファイルには必要な場所が必要です。

+0

サードパーティのjavascriptを含むディレクトリ構造の例を教えてください。あなたはこのようなsthを意味しますか:public/angular/angular.js、angular-messages.jsなど? (私たちがanglejs gemを使用せず、.jsファイルを直接インクルードするとしましょう)。 – Lev

関連する問題