【问题标题】:Rails jquery-ui-rails gemRails jquery-ui-rails gem
【发布时间】:2013-03-09 17:26:47
【问题描述】:

我正在使用 jquery-ui-rails gem。我创建了一个联系表单,当用户单击链接时会显示一个 jquery ui 对话框。反过来,我有一个开发和生产服务器。在开发服务器上,当我单击链接时,联系表单会出现在 jquery ui 对话框中。但是,在生产网站上,当我单击链接时,没有出现带有联系表的对话框。代码和开发服务器上的一样。

我已经尝试将 app 文件夹复制到开发服务器、gem 文件等。

我运行以下

-捆绑安装 -耙资产:清洁 -rake 资产:预编译 -重启服务器

这在开发服务器上完美运行。

我在生产服务器上执行相同的步骤,但链接不起作用。

我在这里真的很茫然。这就是拥有开发服务器的全部意义所在。这基本上什么也没告诉我。

这里有一些代码sn-ps:

宝石文件:

 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 中删除的代码。

【问题讨论】:

  • 只需检查页面资源以确认所有内容都已加载。
  • 您好,搜索“contact-link”上面的代码就在那里。我还搜索了与 ui 相关的代码“ui”,它位于已编译的 application.js 文件中。这太疯狂了。
  • 好的,让它工作。我希望我有新的方法。

标签: jquery ruby-on-rails jquery-ui


【解决方案1】:

我建议将您的 js 代码从 application.js 移动到其他文件,例如 contact_form.js(在 app/assets/javascripts/ 目录中)。 application.js 有一个特殊用途——它是一个清单文件。我认为如果您在清单文件中放置如下例程就可以了:

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

有关资产管道管理的更多信息,您可以阅读here

【讨论】:

  • 我会试一试。我不确定它会有什么不同。
猜你喜欢
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
  • 2013-03-30
  • 2013-03-30
  • 1970-01-01
  • 2013-12-31
  • 1970-01-01
相关资源
最近更新 更多