1

jquery-ui-rails gem を使用しています。ユーザーがリンクをクリックしたときに jquery ui ダイアログを表示するお問い合わせフォームを作成しました。次に、開発サーバーと運用サーバーがあります。開発サーバーでは、リンクをクリックすると jquery ui ダイアログに連絡先フォームが表示されます。ただし、実稼働 Web サイトでリンクをクリックすると、連絡先フォームのダイアログ ボックスが表示されません。コードは、開発サーバーにあるものと同じです。

アプリフォルダーを開発サーバー、gemファイルなどにコピーしてみました。

私は以下を実行します

-bundle install -rake assets:clean -rake assets:precompile -restart server

これは、開発サーバーで完全に機能します。

本番サーバーで同じ手順を実行しましたが、リンクが機能しません。

私はここで本当に途方に暮れています。これは、開発サーバーを持つことの要点です。これは基本的に何も教えてくれません。

コードの一部を次に示します。

宝石ファイル:

 gem 'jquery-rails', "~> 2.1.4"

 gem 'jquery-ui-rails', "~> 3.0.0"

リンク:

 <%= link_to "Contact Us", "javascript:void(0)", :id => "contact-link" %>

アプリケーションjs:

 $(document).ready(function(){
$('#contact-link').click(function(){
    $('#contact-form-wrap').show();
    $("#contact-form-wrap").dialog({
        title: "Contact Us",
        height: 420,
        width: 350,
        modal: true,
        buttons: {
            "Send": function() {
                if($('#contact_subject').val().length != 0 && $('#contact_message').val().length != 0)  {
                    $('#contact-form').submit();
                }
                else {
                    $('#contact-error').html("You must select a subject and enter a message.");
                }
            },
            Cancel: function() {
                $( this ).dialog( "close" );
            }
        }
    });
});
});

お知らせ下さい。本番でできることは本当に限られています。ウェブサイトをめちゃくちゃにし続けることはできません。

編集:

これは、私のアプリケーション js ファイルが現在どのように見えるかです。

 //= require jquery
 //= require jquery_ujs
 //= require jquery.ui.core
 //= require twitter/bootstrap
 //= require active_admin
 //= require contractor_validate
 //= require painter_validate
 //= require jquery.social.media.tabs.1.6
 //= require jquery.validate.min
 //= require payment
 //= require the-tooltip
 //= require general
 //= require_self

General.js には、application.js から削除したコードが含まれています。

4

1 に答える 1

0

js コードをapplication.js別のファイル、たとえば contact_form.js (app/assets/javascripts/ディレクトリ内) に移動することをお勧めします。にはapplication.js特別な目的があります。これはマニフェスト ファイルです。次のようなマニフェスト ファイル ルーチンを配置しても問題ないと思います。

//= require jquery
//= require jquery-ui
//= require_tree .

アセット パイプライン管理の詳細については、こちらを参照してください。

于 2013-03-09T17:33:57.473 に答える