jquery不在rails production env中执行

时间:2014-03-02 05:31:11

标签: jquery ruby-on-rails asset-pipeline

我有一个简单的jquery-(ujs)脚本,可以在页面的不同字段中添加一些值。 (没有AJAX)

这在rails 3.2开发模式下运行良好,但它根本不在生产模式下运行。

application.js文件是:

 //= require jquery
 //= require jquery_ujs
 //= require_tree .

(我在这个目录中有我的adder_func.js文件)..

我在Gemfile中有'jquery-rails' - 完成了包更新.. 我用

重新生成了资产管道
 rake assets:clean
 rake assets:precompile

但是在生产模式下,编辑字段不会更新相关字段..

使用

在开发模式下运行相同的应用程序
  rails s

localhost:3000 / pagexxx和javascript有效..

与phusion-passenger - apache2 localhost:80 / pagexxx一切正常,除了javacscript。

样式表和图像等都是从单个文件“application.css”传递的,并且有一个“applicaton.js”正在加载我的函数。使用javascript在控制台上没有错误。 这是一个资产问题..但我看不出我做错了什么。

2 个答案:

答案 0 :(得分:1)

问题是javascript目录中的错误js库文件。 我在javascripts目录中有4个js库..原型,dragdrop,效果和control.js - 我不需要它们但是它们在那里因为导轨2.3天而且我从不打扰摆脱它们。

我删除了它们,一切正常。

有两种可能性 - 一种是使用jquery在库中存在“冲突”函数名称,或者缺少语法错误;我认为这是后者。

在开发模式下单独提供文件时,除非使用脚本,否则错误文件不会影响任何内容。 但是当sprockets将它们组合成一个application.js文件时,那么你可能会遇到这种问题。

资产预编译不会针对此类冲突或问题提供警告/错误消息,这是一个无赖。

答案 1 :(得分:0)

检查production.rb中的config\environments,然后检查是否需要对资产进行任何配置。根据您的设置,您需要在此处手动添加js文件。

搜索专线: # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)