我有一个简单的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在控制台上没有错误。 这是一个资产问题..但我看不出我做错了什么。
答案 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)