0

基本的なRailsアプリで動作するjquery用のnivoスライダープラグインを取得しようとしています。デモをパブリックフォルダーの静的なhtmlページに配置するだけで、可能な限り最も単純な概念実証を試しましたが、それでも機能させることができません。これが私が使用している現在のヘッダーです:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<html lang="en">
<head>
    <script type="text/javascript" src="../vendor/assets/javascripts/nivo-slider/demo/scripts/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" src="../vendor/assets/javascripts/nivo-slider/jquery.nivo.slider.js"></script>
    <title>Nivo Slider Demo</title>
    <link rel="stylesheet" href="../vendor/assets/javascripts/nivo-slider/themes/default/default.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="../vendor/assets/javascripts/nivo-slider/themes/light/light.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="../vendor/assets/javascripts/nivo-slider/themes/dark/dark.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="../vendor/assets/javascripts/nivo-slider/themes/bar/bar.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="../vendor/assets/javascripts/nivo-slider/nivo-slider.css" type="text/css" media="screen" />
    <link rel="stylesheet" href="../vendor/assets/javascripts/nivo-slider/demo/style.css" type="text/css" media="screen" />

        <script type="text/javascript">
        $(window).load(function() {
            $('#slider').nivoSlider();
        });
    </script>

</head>

エラーが発生しますが、これがherokuに読み込まれるたびに:ReferenceError:

$ is not defined    

$(window).load(function() {

私は一般的にWeb開発にかなり慣れていませんが、これを修正する方法がわかりません。アイデア?

4

1 に答える 1

2

JQueryがロードされていません。Railsで相対パスを使用しています。JavaScriptを手動でロードする必要がある場合は、次の使用を検討する必要があります。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>手動で追加できます。


より良いアプローチは、すべてのjavascriptにアセットパイプラインを使用することです。

javascript_include_tag "application"通常は次の場所にあるレイアウトファイルからコードを取り出しました/app/views/layouts/application.html.erb

それを元に戻し、アセットパイプラインを使用してjQueryとコードを処理する必要があります。

Railsでは相対パスが許可されていますが、期待どおりに機能しない場合があります。Railsは、ベンダーディレクトリではなく、パブリックディレクトリからのアセットのみを提供します。通常、railsにすべてのjs / cssを1つのファイルにコンパイルさせるだけで、public/assetsディレクトリから提供されます。

于 2012-12-02T18:13:17.780 に答える